.logout-dialog-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:9999}.logout-dialog{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026;max-width:320px;overflow:hidden;width:100%}.logout-dialog-header{background:linear-gradient(135deg,#ff6b6b,#ffb199);color:#fff;padding:24px 24px 16px;text-align:center}.logout-dialog-icon{align-items:center;background:#fff3;border-radius:50%;box-shadow:0 4px 16px #0000001a;display:flex;height:48px;justify-content:center;margin:0 auto 12px;width:48px}.logout-dialog-icon i{color:#fff;font-size:20px}.logout-dialog-title{font-size:18px;font-weight:600;margin:0;text-shadow:0 2px 4px #0000001a}.logout-dialog-content{padding:20px 24px;text-align:center}.logout-dialog-content p{color:#333;font-size:16px;font-weight:500;margin:0 0 8px}.logout-dialog-subtitle{color:#666!important;font-size:14px!important;font-weight:400!important;line-height:1.4}.logout-dialog-actions{display:flex;gap:12px;padding:0 24px 24px}.logout-dialog-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:6px;justify-content:center;padding:12px 16px;transition:all .3s ease}.logout-dialog-btn-cancel{background:#f8f9fa;border:1px solid #e9ecef;color:#666}.logout-dialog-btn-cancel:hover{background:#e9ecef;transform:translateY(-1px)}.logout-dialog-btn-cancel:active{transform:translateY(0)}.logout-dialog-btn-confirm{background:linear-gradient(135deg,#ff6b6b,#ff8a8a);box-shadow:0 4px 16px #ff6b6b4d;color:#fff}.logout-dialog-btn-confirm:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-1px)}.logout-dialog-btn-confirm:active{transform:translateY(0)}@media (max-width:480px){.logout-dialog-overlay{padding:12px}.logout-dialog{border-radius:12px;max-width:100%}.logout-dialog-header{padding:20px 20px 12px}.logout-dialog-icon{height:40px;width:40px}.logout-dialog-icon i{font-size:18px}.logout-dialog-title{font-size:16px}.logout-dialog-content{padding:16px 20px}.logout-dialog-content p{font-size:15px}.logout-dialog-subtitle{font-size:13px!important}.logout-dialog-actions{gap:10px;padding:0 20px 20px}.logout-dialog-btn{font-size:13px;padding:10px 14px}}@media (max-width:360px){.logout-dialog-overlay{padding:8px}.logout-dialog-header{padding:16px 16px 10px}.logout-dialog-icon{height:36px;width:36px}.logout-dialog-icon i{font-size:16px}.logout-dialog-title{font-size:15px}.logout-dialog-content{padding:14px 16px}.logout-dialog-content p{font-size:14px}.logout-dialog-subtitle{font-size:12px!important}.logout-dialog-actions{gap:8px;padding:0 16px 16px}.logout-dialog-btn{font-size:12px;padding:8px 12px}}.login-page{padding-bottom:80px}.login-container,.login-page{background:linear-gradient(135deg,#ff6b6b,#ffb199);min-height:100vh}.login-container{display:flex;flex-direction:column;justify-content:center;padding:16px}.login-header{color:#fff;margin-bottom:24px;text-align:center}.login-logo{align-items:center;background:#fff3;border-radius:50%;box-shadow:0 4px 16px #0000001a;display:flex;height:80px;justify-content:center;margin:0 auto 16px;width:80px}.login-logo .icon-heart{color:#fff;font-size:32px}.login-title{font-size:24px;font-weight:600;margin-bottom:8px;text-shadow:0 2px 4px #0000001a}.login-subtitle{font-size:14px;line-height:1.5;opacity:.9}.login-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border-radius:24px;box-shadow:0 8px 32px #0000001a;padding:24px}.login-form .form-group{margin-bottom:16px}.login-form .form-group label{color:#333;display:block;font-size:13px;font-weight:500;margin-bottom:8px}.input-wrapper{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;padding:0 8px;position:relative;transition:all .3s ease}.input-wrapper:focus-within{border-color:#ff6b6b;box-shadow:0 0 0 2px #ff6b6b1a}.input-wrapper i{color:#ff6b6b;font-size:16px;margin-right:8px}.login-form .form-input{background:none;border:none;color:#333;flex:1 1;font-size:14px;outline:none;padding:12px 8px}.login-form .form-input::placeholder{color:#666}.error-message{align-items:center;background:#ffe6e6;border:1px solid #ffb3b3;border-radius:8px;color:#d63031;display:flex;font-size:14px;margin-bottom:15px;padding:12px 15px}.error-message i{font-size:16px;margin-right:8px}.success-message{align-items:center;background:#e8f5e8;border:1px solid #a8e6a8;border-radius:8px;color:#00b894;display:flex;font-size:14px;margin-bottom:15px;padding:12px 15px}.success-message i{font-size:16px;margin-right:8px}.login-actions{margin-top:24px}.login-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8a8a);border:none;border-radius:12px;box-shadow:0 4px 16px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:14px 16px;transition:all .3s ease;width:100%}.login-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.login-btn:active{transform:translateY(0)}.login-btn:disabled{cursor:not-allowed;opacity:.7;transform:none}.loading-spinner{border:2px solid #ffffff4d;border-top-color:#fff;height:16px;margin-right:8px;width:16px}.login-notice{border-top:1px solid #e9ecef;margin-top:24px;padding-top:16px}.notice-item{color:#666;font-size:12px;margin-bottom:8px}.notice-item i{font-size:14px}.form-footer{margin-top:16px;text-align:center}.toggle-btn{background:none;border:none;border-radius:6px;color:#ff6b6b;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .3s ease}.toggle-btn:hover{background:#ff6b6b1a}@media (max-width:480px){.login-container{padding:15px 10px}.login-form{border-radius:16px;padding:20px 15px}.login-title{font-size:22px}.login-logo{height:70px;width:70px}.login-logo .icon-heart{font-size:28px}.login-btn,.login-form .form-input{font-size:15px}.login-btn{padding:12px 16px}}@media (max-width:360px){.login-form{padding:18px 12px}.login-title{font-size:20px}.login-logo{height:60px;width:60px}.login-logo .icon-heart{font-size:24px}.login-btn,.login-form .form-input{font-size:14px}.login-btn{padding:10px 16px}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;overflow-x:hidden}:root{--primary-color:#ff6b6b;--secondary-color:#4ecdc4;--warning-color:#ffe66d;--success-color:#95e1d3;--text-color:#333;--text-light:#666;--background-color:#f8f9fa;--white:#fff;--border-color:#e9ecef;--shadow:0 2px 8px #0000001a;--border-radius:8px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px}.app{background:#fff;margin:0 auto;max-width:414px;min-height:100vh;overflow-x:hidden;position:relative}.page{display:block;padding-bottom:80px}.points-declaration-page{padding-bottom:20px}.page-header{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);border-radius:0 0 24px 24px;box-shadow:0 4px 16px #ff6b6b14;color:#fff;display:flex;padding:16px;padding:var(--spacing-md);position:-webkit-sticky;position:sticky;top:0;z-index:100}.back-btn{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:18px;margin-right:8px;margin-right:var(--spacing-sm);padding:8px;padding:var(--spacing-sm);transition:background-color .3s}.back-btn:hover{background-color:#fff3}.page-header h2{color:#fff;font-size:18px;font-weight:600}.carousel-container{background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:0 0 8px 8px;border-radius:0 0 var(--border-radius) var(--border-radius);color:#fff;height:200px;overflow:hidden;position:relative}.carousel-wrapper{display:flex;height:100%;transition:transform .5s ease-in-out}.carousel-slide{height:100%;min-width:100%;position:relative}.carousel-slide img{height:100%;object-fit:cover;width:100%}.carousel-dots{bottom:16px;display:flex;gap:8px;left:50%;position:absolute;transform:translateX(-50%)}.dot{background:#ffffff80;border-radius:50%;cursor:pointer;height:8px;transition:background-color .3s;width:8px}.dot.active{background:#fff}.notice-bar{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #ff6b6b33;color:#fff;display:flex;font-size:14px;gap:8px;margin:16px;padding:12px 16px}.notice-bar i{font-size:16px}.function-buttons{display:flex;gap:16px;gap:var(--spacing-md);justify-content:space-around;padding:16px}.function-btn{flex:1 1}.function-btn i{background:linear-gradient(135deg,#ffb199,#ff6b6b)}.function-btn:nth-child(2) i{background:linear-gradient(135deg,#4ecdc4,#38b2ac)}.function-btn:nth-child(3) i{background:linear-gradient(135deg,#ffe66d,#f6d365);color:#ff6b6b}.function-btn:nth-child(4) i{background:linear-gradient(135deg,#95e1d3,#4ecdc4)}.activity-list{padding:16px}.activity-item{border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.activity-header{gap:12px;margin-bottom:12px}.activity-avatar{border-radius:50%;height:48px;object-fit:cover;width:48px}.activity-info h3{color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin-bottom:4px}.activity-meta{color:#666;color:var(--text-light);font-size:12px}.activity-content{color:#333;color:var(--text-color);font-size:14px;line-height:1.5;margin-bottom:12px}.activity-footer{align-items:center;display:flex;justify-content:space-between}.activity-points{color:#ff6b6b;color:var(--primary-color)}.activity-points,.activity-status{border-radius:20px;font-size:12px;font-weight:600}.activity-status{padding:4px 12px}.activity-status.ongoing{background:#ffe66d;background:var(--warning-color);color:#856404}.activity-status.upcoming{background:#4ecdc4;background:var(--secondary-color);color:#fff}.activity-status.completed{background:#95e1d3;background:var(--success-color);color:#155724}.search-box{align-items:center;background:#f8f9fa;border:none;border-radius:20px;display:flex;gap:8px;gap:var(--spacing-sm);margin:0;padding:8px 16px;padding:var(--spacing-sm) var(--spacing-md)}.search-box input{background:none;border:none;color:#333;color:var(--text-color);flex:1 1;font-size:14px;outline:none}.search-box i,.search-box input::placeholder{color:#666;color:var(--text-light)}.search-box i{margin-right:8px;margin-right:var(--spacing-sm)}.declaration-tab{padding:20px 16px}.declaration-tab:hover{color:#ff6b6b;color:var(--primary-color)}.declaration-item,.declaration-list{background:#fff;padding:16px;padding:var(--spacing-md)}.declaration-item{border:1px solid #ff6b6b14;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;margin-bottom:16px;margin-bottom:var(--spacing-md);transition:all .3s ease}.declaration-item:hover{border-color:#ff6b6b33;box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.declaration-status{border:1px solid #0000;border-radius:16px;display:inline-block;font-weight:600;min-width:60px;padding:6px 14px;text-align:center;transition:all .2s ease}.declaration-status.approved{background:linear-gradient(135deg,#4caf5026,#4caf500d);border-color:#4caf504d;color:#2e7d32}.declaration-status.pending{background:linear-gradient(135deg,#ff980026,#ff98000d);border-color:#ff98004d;color:#e65100}.declaration-status.rejected{background:linear-gradient(135deg,#f4433626,#f443360d);border-color:#f443364d;color:#c62828}.declaration-status[class*="0"]{background:linear-gradient(135deg,#ff980026,#ff98000d);border-color:#ff98004d;color:#e65100}.declaration-status[class*="1"]{background:linear-gradient(135deg,#4caf5026,#4caf500d);border-color:#4caf504d;color:#2e7d32}.declaration-status[class*="2"]{background:linear-gradient(135deg,#f4433626,#f443360d);border-color:#f443364d;color:#c62828}.declaration-meta{color:#666;color:var(--text-light);font-size:12px;margin-bottom:8px}.floating-declaration-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border:none;border-radius:50px;bottom:50px;box-shadow:0 4px 16px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 20px;position:fixed;right:30px;transition:all .3s ease;z-index:1000}.floating-declaration-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.floating-declaration-btn i{font-size:16px}.scan-container{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md)}.location-info,.scan-container{padding:16px;padding:var(--spacing-md)}.location-info{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014}.location-header{align-items:center;color:#333;color:var(--text-color);display:flex;font-weight:600;gap:8px;margin-bottom:12px}.location-header i{color:#4ecdc4;font-size:16px}.location-content{margin-bottom:12px}.location-address{color:#333;color:var(--text-color);font-size:14px;font-weight:500;margin-bottom:4px}.location-coordinates{color:#666;color:var(--text-light);font-family:monospace;font-size:12px}.refresh-location-btn{align-items:center;background:linear-gradient(135deg,#4ecdc4,#38b2ac);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .3s ease;width:-webkit-fit-content;width:fit-content}.refresh-location-btn:hover{box-shadow:0 4px 12px #4ecdc44d;transform:translateY(-1px)}.refresh-location-btn i{font-size:12px}.scan-area{align-items:center;border-radius:16px;box-shadow:0 2px 12px #00000014;display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md);padding:var(--spacing-lg)}.scan-frame{background:#ff6b6b0d;border:2px solid #ff6b6b4d;border-radius:16px;height:250px;width:250px}.scan-corner.top-left{border-radius:8px 0 0 0;left:-3px;top:-3px}.scan-corner.top-right{border-radius:0 8px 0 0;right:-3px;top:-3px}.scan-corner.bottom-left{border-radius:0 0 0 8px;bottom:-3px;left:-3px}.scan-corner.bottom-right{border-radius:0 0 8px 0;bottom:-3px;right:-3px}.scan-line{animation:scanMove 2s linear infinite;left:0;width:100%}@keyframes scanMove{0%{top:0}to{top:calc(100% - 2px)}}.scan-tip{color:#666;color:var(--text-light);text-align:center}.scan-tip i{margin-bottom:8px}.scan-tips{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;padding:16px;padding:var(--spacing-md)}.tip-item{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:14px;gap:8px;padding:8px 0}.tip-item i{color:#ff6b6b;color:var(--primary-color);font-size:16px;width:16px}.manual-input{display:flex;justify-content:center}.manual-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border:none;border-radius:12px;box-shadow:0 4px 16px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .3s ease}.manual-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.checkin-container{padding:16px}.checkin-form{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.form-group input,.form-group textarea{border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius);font-size:14px;padding:12px;width:100%}.form-group textarea{min-height:80px;resize:vertical}.submit-btn{padding:14px;transition:background-color .3s;width:100%}.submit-btn:hover{background:#e55a5a}.redemption-summary,.summary-card{padding:16px;padding:var(--spacing-md)}.summary-card{background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:16px;box-shadow:0 4px 16px #ff6b6b33;color:#fff}.summary-header{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md)}.summary-header i{font-size:20px}.summary-content{grid-gap:16px;grid-gap:var(--spacing-md);display:grid;gap:16px;gap:var(--spacing-md);grid-template-columns:repeat(3,1fr)}.summary-item{text-align:center}.summary-label{font-size:12px;margin-bottom:4px;opacity:.9}.summary-value{font-size:20px;font-weight:700;line-height:1}.redemption-section{padding:0 16px;padding:0 var(--spacing-md)}.redemption-card{border:1px solid #ff6b6b1a;border-radius:16px;box-shadow:0 2px 12px #00000014}.qr-container{margin:16px 0;margin:var(--spacing-md) 0}.qr-code{background:#f8f9fa;border:2px dashed #e9ecef;border-radius:16px;min-height:300px;min-width:300px;padding:24px;padding:var(--spacing-lg);text-align:center;transition:all .3s ease}.qr-code:hover{background:#ff6b6b0d;border-color:#ff6b6b;border-color:var(--primary-color)}.qr-icon{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.qr-icon i{color:#ff6b6b;color:var(--primary-color);font-size:158px}.qr-text h4{color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin:0 0 4px}.qr-text p{color:#666;color:var(--text-light);font-size:12px;margin:0}.redemption-tips{border-top:1px solid #f0f0f0;margin-top:16px;margin-top:var(--spacing-md);padding-top:16px;padding-top:var(--spacing-md)}.redemption-tips .tip-item{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:13px;gap:8px;margin-bottom:8px}.redemption-tips .tip-item:last-child{margin-bottom:0}.redemption-tips .tip-item i{color:#ff6b6b;color:var(--primary-color);text-align:center;width:16px}.redemption-actions{gap:16px;gap:var(--spacing-md);margin-top:16px;margin-top:var(--spacing-md);padding:16px;padding:var(--spacing-md)}.redemption-actions .action-btn{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:12px;color:#333;color:var(--text-color);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:13px;font-weight:500;gap:6px;padding:16px;padding:var(--spacing-md);transition:all .3s ease}.redemption-actions .action-btn:hover{background:#ff6b6b0d;border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 4px 12px #ff6b6b26;transform:translateY(-2px)}.redemption-actions .action-btn i{color:#ff6b6b;color:var(--primary-color);font-size:20px}.redemption-container{padding:16px}.redemption-form{background:#fff;box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.qr-code-container,.redemption-form{border-radius:8px;border-radius:var(--border-radius)}.qr-code-container{background:#f8f9fa;padding:40px 20px;text-align:center}.qr-code-placeholder{align-items:center;background:#e9ecef;border:2px dashed #ced4da;border-radius:8px;border-radius:var(--border-radius);color:#666;color:var(--text-light);display:flex;font-size:14px;height:200px;justify-content:center;margin:0 auto;width:200px}.success-container{align-items:center;display:flex;flex-direction:column;gap:24px;gap:var(--spacing-lg);padding:16px;padding:var(--spacing-md)}.success-icon{margin-top:24px;margin-top:var(--spacing-lg)}.success-icon i{animation:successPulse 1s ease-out;color:#4caf50;font-size:80px}@keyframes successPulse{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.success-info{text-align:center}.success-info h3{color:#333;color:var(--text-color);font-size:24px;font-weight:600;margin:0 0 8px}.success-info p{color:#666;color:var(--text-light);font-size:16px;margin:0}.activity-info-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;max-width:320px;padding:16px;padding:var(--spacing-md);width:100%}.info-item{padding:12px 0}.info-item label{color:#666;color:var(--text-light);font-size:14px}.info-item span{color:#333;color:var(--text-color);font-size:14px;font-weight:500}.info-item span[id=checkin-points]{color:#4caf50;font-weight:600}.success-actions{gap:var(--spacing-md);max-width:320px;width:100%}.action-btn{border-radius:12px;flex-direction:column;font-size:14px;gap:6px;transition:all .3s ease}.action-btn.primary{background:linear-gradient(135deg,#ff6b6b,#ffb199);box-shadow:0 4px 16px #ff6b6b4d}.action-btn.primary:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.action-btn.secondary{background:#fff}.action-btn.secondary:hover{background:#ff6b6b0d;border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 4px 12px #ff6b6b26;transform:translateY(-2px)}.action-btn i{font-size:18px}.success-container{padding:60px 20px;text-align:center}.success-icon{color:#95e1d3;color:var(--success-color);font-size:80px;margin-bottom:24px}.success-title{color:var(--text-color);font-size:24px;font-weight:600;margin-bottom:16px}.success-message{color:#666;color:var(--text-light);font-size:16px;line-height:1.6;margin-bottom:32px}.success-actions{display:flex;gap:16px;justify-content:center}.success-btn{border:none;border-radius:8px;border-radius:var(--border-radius);cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.success-btn.primary{background:#ff6b6b;background:var(--primary-color);color:#fff}.success-btn.secondary{background:#f8f9fa;background:var(--background-color);border:1px solid #e9ecef;border:1px solid var(--border-color);color:#333;color:var(--text-color)}.success-btn:hover{box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);transform:translateY(-2px)}@media (max-width:375px){.function-buttons{grid-template-columns:1fr}.carousel-container{height:250px}.page-header{padding:12px 16px}}.page{animation:fadeIn .3s ease-out}.loading{align-items:center;color:#666;color:var(--text-light);display:flex;justify-content:center;padding:40px}.loading:after{animation:spin 1s linear infinite;border:2px solid #e9ecef;border-top:2px solid #ff6b6b;border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);content:"";height:20px;margin-left:8px;width:20px}.bottom-nav{align-items:center;background:#fff;border-radius:24px 24px 0 0;border-top:1px solid #f5eaea;bottom:0;box-shadow:0 -2px 24px #ff6b6b1f;display:flex;justify-content:space-around;left:0;max-width:100vw;padding:6px 0 8px;position:fixed;right:0;width:100%;z-index:100}.nav-item{border-radius:16px;color:#bbb;cursor:pointer;flex:1 1;font-size:12px;margin:2px 8px;padding:6px 12px 4px;text-align:center;transition:color .2s,background .2s}.nav-item.active{background:#ffe6e6;box-shadow:0 2px 8px #ff6b6b26;color:#ff6b6b}.nav-item i{display:block;font-size:18px;margin-bottom:3px}.nav-item span{font-size:10px;font-weight:500}.profile-page-header{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:32px 0 20px;position:relative}.user-top-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px;padding:0 16px;width:100%}.user-left-space{flex:1 1}.user-avatar{border-radius:50%;box-shadow:0 2px 8px #ff6b6b26;height:72px;width:72px}.user-actions{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.volunteer-register-btn{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:20px;color:#fff;cursor:pointer;display:flex;font-size:12px;gap:6px;padding:8px 16px;transition:all .3s ease}.volunteer-register-btn:hover{background:#ffffff4d;border-color:#ffffff80}.verified-badge{align-items:center;background:#4caf50e6;border-radius:16px;color:#fff;display:flex;font-size:11px;gap:4px;padding:6px 12px}.verified-badge.hidden{display:none}.user-text-info{display:flex;flex-direction:column;gap:4px;text-align:center}.user-name{color:#fff;font-size:18px;font-weight:600}.user-community{color:#fff;font-size:13px;opacity:.85}.service-stats-card{background:#fff;border:1px solid #ff6b6b1f;border-radius:16px;box-shadow:0 2px 12px #ff6b6b14;margin:16px 12px;padding:16px;padding:var(--spacing-md)}.stats-header{border-bottom:1px solid #ff6b6b1a;gap:8px;gap:var(--spacing-sm);margin-bottom:16px;margin-bottom:var(--spacing-md);padding-bottom:8px;padding-bottom:var(--spacing-sm)}.stats-header,.stats-header i{align-items:center;display:flex}.stats-header i{border-radius:50%;color:#fff;font-size:16px;height:32px;justify-content:center;width:32px}.stats-header span{color:#333;color:var(--text-color);font-size:16px;font-weight:600}.stats-content{display:flex;gap:16px;gap:var(--spacing-md);justify-content:space-between}.stats-item{background:#f8f9fa;border:1px solid #ff6b6b14;border-radius:12px;flex:1 1;padding:8px;padding:var(--spacing-sm);text-align:center;transition:all .3s ease}.stats-item:hover{border-color:#ff6b6b33;box-shadow:0 4px 12px #ff6b6b26;transform:translateY(-2px)}.stats-label{color:#666;color:var(--text-light);font-size:12px;font-weight:500;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.stats-value{color:#ff6b6b;color:var(--primary-color);font-size:20px;font-weight:700;line-height:1;margin-bottom:2px}.stats-unit{color:#666;color:var(--text-light);font-size:11px;font-weight:500}.function-row{align-items:center;display:flex;gap:20px;justify-content:space-between;padding:12px 0}.function-row-left{display:flex;gap:20px;justify-content:flex-start;padding:16px 0}.function-btn-flex{flex:1 1}.function-btn-width{width:150px}.function-btn{align-items:center;background:none;border:none;box-shadow:none;cursor:pointer;display:flex;flex-direction:column;padding:16px 8px;transition:transform .2s,box-shadow .2s}.function-btn:active,.function-btn:hover{transform:translateY(-2px) scale(1.05)}.function-btn i{align-items:center;border-radius:50%;box-shadow:0 2px 8px #ff6b6b26;color:#fff;display:flex;font-size:24px;height:48px;justify-content:center;margin-bottom:8px;width:48px}.function-btn span{color:#333;font-size:13px;margin-top:2px;text-align:center}.icon-heart{background:linear-gradient(135deg,#ff6b6b,#ee5a52)}.icon-clock{background:linear-gradient(135deg,#ff9a9e,#fecfef)}.icon-clipboard{background:linear-gradient(135deg,#ffb199,#ff6b6b)}.icon-coins{background:linear-gradient(135deg,#ffe66d,#f6d365);color:#ff6b6b}.icon-comment{background:linear-gradient(135deg,#4ecdc4,#38b2ac)}.icon-shield{background:linear-gradient(135deg,#667eea,#764ba2)}.icon-signout{background:linear-gradient(135deg,#ff6b6b,#ee5a52)}.activity-list{background:#fff;border-radius:16px;box-shadow:0 2px 12px #ff6b6b14;padding:0 0 4px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;padding:16px 16px 0}.section-header .section-title{color:#333;color:var(--text-color);font-size:18px;font-weight:600;margin-bottom:0;padding:0}.more-btn{align-items:center;background:none;border:none;border-radius:8px;border-radius:var(--border-radius);color:#ff6b6b;color:var(--primary-color);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:4px;padding:8px 0 8px 12px;transition:all .3s ease}.more-btn:hover{background:#ff6b6b1a;transform:translateX(2px)}.more-btn i{font-size:12px;transition:transform .3s ease}.more-btn:hover i{transform:translateX(2px)}.message-list{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md)}.message-item,.message-list{padding:16px;padding:var(--spacing-md)}.message-item{background:#fff;border-left:4px solid #0000;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .2s ease}.message-item:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.message-item.unread{background:linear-gradient(135deg,#ff6b6b05,#ff6b6b03);border-left-color:#ff6b6b;border-left-color:var(--primary-color)}.message-item.read{opacity:.8}.message-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.message-title{color:#333;color:var(--text-color);flex:1 1;font-size:16px;font-weight:600;line-height:1.4;margin-right:8px;margin-right:var(--spacing-sm)}.message-status{border-radius:12px;font-size:11px;font-weight:500;padding:2px 8px;white-space:nowrap}.message-status.read{background:#9e9e9e1a;color:#666}.message-status.unread{background:#ff6b6b1a;color:#ff6b6b;color:var(--primary-color)}.message-preview{color:#666;color:var(--text-light);font-size:14px;line-height:1.5;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.message-meta,.message-time{font-size:12px}.message-time{color:#666;color:var(--text-light)}.message-type{background:#4ecdc41a;border-radius:8px;color:#4ecdc4;color:var(--secondary-color);font-size:11px;padding:2px 6px}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:24px * 2;padding:var(--spacing-lg) * 2}.empty-state i{font-size:48px;margin-bottom:16px;margin-bottom:var(--spacing-md);opacity:.5}.empty-state p{font-size:16px}.message-detail-content{background:#fff;min-height:calc(100vh - 60px);padding:16px;padding:var(--spacing-md)}.message-header{border-bottom:1px solid #f0f0f0;margin-bottom:24px;margin-bottom:var(--spacing-lg);padding-bottom:16px;padding-bottom:var(--spacing-md)}.message-detail-title{color:#333;color:var(--text-color);font-size:20px;font-weight:600;line-height:1.4;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.message-meta{align-items:center;display:flex;justify-content:space-between}.message-detail-time,.message-meta{color:#666;color:var(--text-light);font-size:14px}.message-detail-type{background:#4ecdc41a;border-radius:12px;color:#4ecdc4;color:var(--secondary-color);font-size:12px;padding:4px 8px}.message-body{margin-bottom:24px;margin-bottom:var(--spacing-lg)}.message-detail-content-text{color:#333;color:var(--text-color);font-size:16px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.message-actions{border-top:1px solid #f0f0f0;display:flex;gap:16px;gap:var(--spacing-md);padding-top:16px;padding-top:var(--spacing-md)}.action-btn{align-items:center;border:none;border-radius:8px;border-radius:var(--border-radius);cursor:pointer;display:flex;flex:1 1;font-size:16px;font-weight:500;justify-content:center;padding:16px;padding:var(--spacing-md);transition:all .2s ease}.action-btn.primary{background:#ff6b6b;background:var(--primary-color);color:#fff}.action-btn.primary:hover{background:#e74c3c;transform:translateY(-1px)}.action-btn.secondary{background:#f8f9fa;border:1px solid #e9ecef;color:#333;color:var(--text-color)}.action-btn.secondary:hover{background:#e9ecef;transform:translateY(-1px)}.error-state{align-items:center;color:#666;color:var(--text-light);display:flex;flex-direction:column;justify-content:center;padding:24px * 2;padding:var(--spacing-lg) * 2}.error-state i{color:#e74c3c;font-size:48px;margin-bottom:16px;margin-bottom:var(--spacing-md);opacity:.7}.error-state p{font-size:16px;margin-bottom:24px;margin-bottom:var(--spacing-lg)}.loading-container{align-items:center;color:var(--text-light);display:flex;flex-direction:column;justify-content:center;padding:24px * 2;padding:var(--spacing-lg) * 2}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#ff6b6b;border-top:3px solid var(--primary-color);height:40px;margin-bottom:16px;margin-bottom:var(--spacing-md);width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.points-overview{padding:16px;padding:var(--spacing-md)}.overview-card{background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:16px;box-shadow:0 4px 20px #ff6b6b33;color:#fff;padding:24px;padding:var(--spacing-lg)}.overview-header{font-size:16px;font-weight:600;gap:8px;margin-bottom:24px;margin-bottom:var(--spacing-lg)}.overview-header i{font-size:20px}.overview-header span{color:#fff;font-size:16px;font-weight:600}.overview-content{display:flex;gap:16px;gap:var(--spacing-md)}.overview-item{align-items:center;display:flex;flex:1 1;flex-direction:column;position:relative;text-align:center}.overview-label{color:#fff;font-size:12px;margin-bottom:4px;opacity:.9}.overview-value{color:#fff;font-size:24px;font-weight:700;margin-bottom:8px}.overview-icon{align-items:center;background:#fff3;border-radius:50%;display:flex;height:32px;justify-content:center;width:32px}.overview-icon i{color:#fff;font-size:16px}.points-actions{display:flex;gap:16px;gap:var(--spacing-md);padding:0 16px 16px;padding:0 var(--spacing-md) var(--spacing-md)}.action-card{align-items:center;background:#fff;border:1px solid #ff6b6b1f;border-radius:12px;box-shadow:0 2px 8px #ff6b6b14;cursor:pointer;display:flex;flex:1 1;flex-direction:column;padding:16px;padding:var(--spacing-md);transition:all .3s ease}.action-card:hover{border-color:#ff6b6b4d;box-shadow:0 4px 16px #ff6b6b26;transform:translateY(-2px)}.action-card i{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:50%;color:#fff;display:flex;font-size:18px;height:40px;justify-content:center;margin-bottom:8px;margin-bottom:var(--spacing-sm);width:40px}.action-card span{color:#333;color:var(--text-color);font-size:13px;font-weight:500}.points-records{background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -2px 12px #00000014;margin-top:16px;margin-top:var(--spacing-md);padding:16px;padding:var(--spacing-md)}.records-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md)}.records-header h3{color:#333;color:var(--text-color);font-size:18px;font-weight:600;margin:0}.tab-section{display:flex;gap:8px;gap:var(--spacing-sm);margin-bottom:16px;margin-bottom:var(--spacing-md)}.tab-btn{background:#f8f9fa;border:1px solid #ff6b6b14;border-radius:20px;color:#666;color:var(--text-light);cursor:pointer;flex:1 1;font-size:14px;padding:8px 16px;padding:var(--spacing-sm) var(--spacing-md);transition:all .3s ease}.tab-btn.active{background:#ff6b6b;background:var(--primary-color);border-color:#ff6b6b;border-color:var(--primary-color);color:#fff}.list-content{min-height:200px}.list-tab{display:none}.list-tab.active{display:block}.list-item{background:#f8f9fa;border:1px solid #ff6b6b14;border-radius:12px;padding:16px;padding:var(--spacing-md)}.item-header,.list-item{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.item-header{align-items:center;display:flex;justify-content:space-between}.item-header h4{color:#333;color:var(--text-color);font-size:14px;font-weight:600;margin:0}.status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.status.approved{background:#4caf501a;color:#4caf50}.status.pending{background:#ff98001a;color:#ff9800}.status.rejected{background:#f443361a;color:#f44336}.status.completed{background:#4caf501a;color:#4caf50}.item-content p{color:#666;color:var(--text-light);font-size:13px;line-height:1.4;margin:0 0 8px;margin:0 0 var(--spacing-sm) 0}.item-meta{align-items:center;display:flex;font-size:12px;justify-content:space-between}.time{color:#666;color:var(--text-light)}.points{color:#ff6b6b;color:var(--primary-color);font-weight:600}.declaration-search-bar{background:#fff;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);padding:16px 12px}.search-filter-row{align-items:center;display:flex;gap:12px}.declaration-search{align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:22px;box-shadow:0 2px 8px #0000000d;display:flex;flex:1 1;height:44px;min-width:180px;overflow:visible;padding:8px 60px 8px 16px;position:relative;transition:all .3s}.declaration-search:focus-within{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 4px #ff6b6b26,0 4px 12px #ff6b6b1a;transform:translateY(-1px)}.declaration-search:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.declaration-search:hover:before{left:100%}.declaration-search i{color:#ff6b6b;color:var(--primary-color);font-size:16px;margin-right:10px;opacity:.8;transition:all .3s}.declaration-search:focus-within i{opacity:1;transform:scale(1.1)}.declaration-search input{background:none;border:none;color:#333;color:var(--text-color);flex:1 1;font-size:14px;font-weight:500;line-height:1.4;outline:none;padding:0 55px 0 0;position:relative;z-index:1}.declaration-search input::placeholder{color:#666;color:var(--text-light);font-weight:400;opacity:.8}.declaration-search-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);border:none;border-radius:18px;box-shadow:0 3px 8px #ff6b6b40;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:28px;justify-content:center;letter-spacing:.5px;padding:8px 12px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all .3s;white-space:nowrap;z-index:2}.declaration-search-btn:hover{box-shadow:0 6px 16px #ff6b6b59;transform:translateY(-50%) translateY(-2px) scale(1.05)}.declaration-search-btn:active{box-shadow:0 2px 6px #ff6b6b4d;transform:translateY(-50%) translateY(0) scale(.98)}.filter-more-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);border:2px solid #0000;border-radius:22px;box-shadow:0 3px 8px #ff6b6b40;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:600;gap:4px;height:37px;justify-content:center;letter-spacing:.3px;min-width:70px;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s;white-space:nowrap}.filter-more-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.filter-more-btn:hover:before{left:100%}.filter-more-btn:hover{box-shadow:0 6px 16px #ff6b6b59;transform:translateY(-2px) scale(1.05)}.filter-more-btn:active{box-shadow:0 2px 6px #ff6b6b4d;transform:translateY(0) scale(.98)}.filter-more-btn i{font-size:16px;position:relative;transition:all .3s;z-index:1}.filter-more-btn:hover i{transform:rotate(180deg)}.declaration-select:focus{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a;outline:none}.filter-modal-overlay{align-items:flex-start;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding-top:80px;position:fixed;right:0;top:0;z-index:1000}.filter-modal{animation:slideDown .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026;max-height:80vh;max-width:400px;overflow:hidden;width:90%}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.filter-modal-header{align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.filter-modal-header h3{color:#333;color:var(--text-color);font-size:18px;font-weight:600;margin:0}.filter-close-btn{align-items:center;background:#f0f0f0;border:none;border-radius:50%;color:#666;color:var(--text-light);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .3s;width:32px}.filter-close-btn:hover{background:#ff6b6b;background:var(--primary-color);color:#fff}.filter-modal-content{max-height:60vh;overflow-y:auto;padding:20px}.filter-group{margin-bottom:20px}.filter-group:last-child{margin-bottom:0}.filter-group label{display:block;font-weight:600;margin-bottom:8px}.filter-group label,.filter-select{color:#333;color:var(--text-color);font-size:14px}.filter-select{-webkit-appearance:none;appearance:none;background:#f8f9fa;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:12px;cursor:pointer;padding:12px 48px 12px 16px;transition:all .3s;width:100%}.filter-select:focus{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a;outline:none}.filter-modal-actions{background:#f8f9fa;border-top:1px solid #e9ecef;border-top:1px solid var(--border-color);display:flex;gap:12px;padding:20px}.filter-confirm-btn,.filter-reset-btn{border:none;border-radius:25px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.filter-reset-btn{background:#f0f0f0;color:#333;color:var(--text-color)}.filter-reset-btn:hover{background:#e0e0e0}.filter-confirm-btn{background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);box-shadow:0 2px 8px #ff6b6b4d;color:#fff}.filter-confirm-btn:hover{box-shadow:0 4px 12px #ff6b6b66;transform:translateY(-1px)}@media (max-width:480px){.declaration-search-bar{padding:12px 8px}.search-filter-row{gap:8px}.declaration-search{padding:8px 50px 8px 12px}.filter-more-btn{font-size:12px;gap:3px;min-width:60px;padding:8px 10px}.filter-modal{margin:0 auto;width:95%}.filter-modal-overlay{padding-top:60px}}.declaration-tab{border-bottom:2px solid #0000;padding:var(--spacing-md);transition:all .3s ease}.declaration-tab.active{border-bottom-color:#ff6b6b;border-bottom-color:var(--primary-color)}.community-filter{background:#fff;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);display:flex;gap:8px;gap:var(--spacing-sm);padding:16px;padding:var(--spacing-md)}.community-btn{background:#f8f9fa;border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:20px;color:#666;color:var(--text-light);cursor:pointer;font-size:13px;padding:8px 16px;padding:var(--spacing-sm) var(--spacing-md);transition:all .3s ease}.community-btn.active{background:#ff6b6b;background:var(--primary-color);border-color:#ff6b6b;border-color:var(--primary-color);color:#fff}.activity-grid{grid-gap:16px;grid-gap:var(--spacing-md);display:grid;gap:16px;gap:var(--spacing-md);padding:16px;padding:var(--spacing-md)}.activity-card{border-radius:12px;overflow:hidden}.activity-cover{height:160px}.activity-status{border-radius:12px;color:#fff;padding:4px 8px;position:absolute;right:8px;right:var(--spacing-sm)}.activity-status.ongoing{background:#4caf50e6}.activity-status.upcoming{background:#ff9800e6}.activity-status.completed{background:#9e9e9ee6}.activity-title{color:#333;color:var(--text-color);font-size:16px;font-weight:600;line-height:1.3;margin:0 0 8px;margin:0 0 var(--spacing-sm) 0}.activity-meta{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.meta-item{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:13px;gap:8px;gap:var(--spacing-sm);margin-bottom:4px}.meta-item i{color:#ff6b6b;color:var(--primary-color);width:16px}.activity-participants{color:#666;color:var(--text-light);font-size:12px;text-align:right}.activity-grid{background:#fff;border-radius:16px;box-shadow:0 2px 12px #ff6b6b14;margin:0 12px;padding:12px 0 4px}.activity-card{background:#fff;border:1px solid #ff6b6b14;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);cursor:pointer;margin-bottom:16px;margin-bottom:var(--spacing-md);padding:16px;padding:var(--spacing-md);transition:all .3s ease}.activity-card:hover{border-color:#ff6b6b33;box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.activity-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md)}.activity-header h4{color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin:0}.category-tag{border-radius:12px;font-size:10px;padding:4px 8px;padding:var(--spacing-xs) var(--spacing-sm)}.category-tag.party{background-color:#ff6b6b;color:#fff}.category-tag.economy{background-color:#4ecdc4;color:#fff}.category-tag.security{background-color:#ffe66d;color:#856404}.category-tag.service{background-color:#95e1d3;color:#fff}.category-tag.illegal{background-color:#ff8a8a;color:#fff}.activity-details p{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:12px;margin-bottom:4px;margin-bottom:var(--spacing-xs)}.activity-details i{color:#ff6b6b;color:var(--primary-color);margin-right:4px;margin-right:var(--spacing-xs);text-align:center;width:12px}.join-btn{background-color:#ff6b6b;background-color:var(--primary-color);border:none;border-radius:8px;border-radius:var(--border-radius);color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:16px;margin-top:var(--spacing-md);padding:8px;padding:var(--spacing-sm);transition:background-color .3s;width:100%}.join-btn:hover{background-color:#ff5252}.activity-grid{display:flex;flex-direction:column;gap:10px}.activity-item{align-items:center;background:#fff;border:1px solid #ff6b6b1f;border-radius:16px;box-shadow:0 4px 16px #ff6b6b1f,0 2px 8px #00000014;cursor:pointer;display:flex;margin-bottom:10px;min-height:100px;padding:16px 20px 16px 18px;position:relative;transition:all .3s ease}.activity-item:hover{box-shadow:0 6px 20px #ff6b6b2e,0 4px 12px #0000001f;transform:translateY(-2px)}.activity-item .cover{background:#f5f5f5;border-radius:10px;flex-shrink:0;height:80px;margin-right:16px;object-fit:cover;width:80px}.activity-info{display:flex;flex:1 1;flex-direction:column;gap:6px;justify-content:center;min-width:0}.activity-info-row{align-items:center;display:flex;justify-content:space-between}.activity-info h4{color:#222;font-size:15px;font-weight:600;line-height:1.2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-status{border-radius:8px;font-size:11px;font-weight:500;line-height:1.2;margin-left:8px;padding:2px 14px;white-space:nowrap}.activity-status,.activity-status.ongoing{background:#ffe6e6;color:#ffb347}.activity-status.upcoming{background:#e6fff6;color:#38b2ac}.activity-status.completed{background:#e6e6e6;color:#aaa}.activity-info-detail{align-items:center;color:#888;display:flex;font-size:12px;line-height:1.3}.activity-info-detail i{margin-right:6px;text-align:center;width:14px}.category-tag{background:#ff6b6b1a;border-radius:8px;color:#ff6b6b;color:var(--primary-color);font-size:11px;font-weight:500;margin-left:4px;padding:2px 6px}.declaration-card{border:1px solid #ff6b6b14;box-shadow:0 2px 8px #0000001a;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.declaration-card:hover{border-color:#ff6b6b33;box-shadow:0 4px 16px #00000026}.declaration-header{align-items:center;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.declaration-status{font-size:11px}.declaration-status.approved{background:#4caf501a;color:#4caf50}.declaration-status.pending{background:#ff98001a;color:#ff9800}.declaration-status.rejected{background:#f443361a;color:#f44336}.declaration-info{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.declaration-info-row{font-size:13px;gap:var(--spacing-sm);margin-bottom:4px}.declaration-info-row i{width:16px}.declaration-content{line-height:1.4;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.points-info{gap:8px;gap:var(--spacing-sm)}.points-info i{color:#ff6b6b;color:var(--primary-color)}.redemption-card{border:1px solid #ff6b6b14;box-shadow:0 2px 8px #0000001a;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.redemption-card:hover{border-color:#ff6b6b33;box-shadow:0 4px 16px #00000026}.redemption-header{align-items:center;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.redemption-status{font-size:11px}.redemption-status.completed{background:#4caf501a;color:#4caf50}.redemption-info{margin-bottom:8px;margin-bottom:var(--spacing-sm)}.redemption-info-row{font-size:13px;gap:var(--spacing-sm);margin-bottom:4px}.redemption-info-row i{color:#ff6b6b;color:var(--primary-color);width:16px}.redemption-content{color:#333;color:var(--text-color);line-height:1.4;margin-bottom:8px;margin-bottom:var(--spacing-sm)}.declaration-form,.form-section{padding:16px;padding:var(--spacing-md)}.form-section{box-shadow:0 2px 8px #00000014}.form-section,.form-section .section-title{margin-bottom:16px;margin-bottom:var(--spacing-md)}.form-section .section-title{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);color:#333;color:var(--text-color);font-size:16px;font-weight:600;padding-bottom:8px;padding-bottom:var(--spacing-sm)}.form-group{margin-bottom:16px;margin-bottom:var(--spacing-md)}.form-group label{font-weight:500;margin-bottom:var(--spacing-sm)}.form-input{background:#fff}.form-input,.form-select{border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:var(--border-radius);transition:border-color .3s ease}.form-input[readonly]{background-color:#f8f9fa;color:#666;color:var(--text-light);cursor:not-allowed}.points-display{align-items:center;background:#f8f9fa;border:2px solid #ff6b6b;border-radius:8px;border-radius:var(--border-radius);color:#ff6b6b;display:flex;gap:8px;padding:12px 16px}.points-value{font-size:24px;font-weight:700}.points-unit{color:#ff6b6b;font-size:14px;opacity:.9}.time-range-container{flex-direction:column;gap:12px}.time-input-group{display:flex;flex-direction:column;gap:8px}.time-label{color:#666;color:var(--text-light);font-size:12px;font-weight:500}.time-input{width:100%}.service-hours-display{align-items:center;background:#f8f9fa;border:2px solid #4ecdc4;border:2px solid var(--secondary-color);border-radius:8px;border-radius:var(--border-radius);display:flex;gap:8px;padding:12px 16px}.hours-value,.service-hours-display{color:#4ecdc4;color:var(--secondary-color)}.hours-value{font-size:24px;font-weight:700}.hours-unit{color:#4ecdc4;color:var(--secondary-color);font-size:14px;opacity:.9}.file-upload{margin-top:8px;margin-top:var(--spacing-sm)}.upload-btn{border-radius:var(--border-radius);gap:8px;padding:12px 16px;transition:all .3s ease;width:100%}.form-actions{padding:16px 0;padding:var(--spacing-md) 0;text-align:center}.submit-btn{background:#ff6b6b;background:var(--primary-color);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #ff6b6b33;display:inline-flex;gap:8px;padding:14px 32px;transition:all .3s ease}.submit-btn:hover{background:#ff5252;box-shadow:0 4px 16px #ff6b6b4d;transform:translateY(-2px)}.activity-detail-content{padding-bottom:100px}.activity-cover{height:200px;overflow:hidden;position:relative;width:100%}.activity-cover img{height:100%;object-fit:cover;width:100%}.detail-section{box-shadow:0 2px 8px #00000014;margin:16px;margin:var(--spacing-md);padding:16px;padding:var(--spacing-md)}.detail-section .section-title{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin-bottom:16px;margin-bottom:var(--spacing-md);padding-bottom:8px;padding-bottom:var(--spacing-sm)}.detail-info{gap:var(--spacing-md)}.detail-item{gap:8px;gap:var(--spacing-sm)}.detail-item label{font-size:14px}.detail-item p,.detail-item span{font-size:14px;line-height:1.5}.detail-item p{background:#f8f9fa;border-left:3px solid #ff6b6b;border-left:3px solid var(--primary-color);border-radius:8px;border-radius:var(--border-radius);margin:0;padding:8px;padding:var(--spacing-sm)}.checkin-qr-section{display:flex;justify-content:center}.checkin-qr-btn{align-items:center;background:linear-gradient(135deg,#4ecdc4,#38b2ac);border:none;border-radius:12px;box-shadow:0 4px 12px #4ecdc44d;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:12px 24px;transition:all .3s ease}.checkin-qr-btn:hover{box-shadow:0 6px 20px #4ecdc466;transform:translateY(-2px)}.checkin-qr-btn i{font-size:16px}.activity-carousel-container{border-radius:0 0 12px 12px;height:200px;overflow:hidden;position:relative;width:100%}.activity-carousel-wrapper{display:flex;height:100%;transition:transform .3s ease;width:300%}.activity-carousel-slide{height:100%;width:33.333%}.activity-carousel-slide img{height:100%;object-fit:cover;width:100%}.activity-carousel-dots{bottom:12px;display:flex;gap:8px;left:50%;position:absolute;transform:translateX(-50%);z-index:2}.activity-dot{background:#ffffff80;border-radius:50%;cursor:pointer;height:8px;transition:all .3s ease;width:8px}.activity-dot.active{background:#fff;transform:scale(1.2)}.activity-carousel-btn{align-items:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:40px;z-index:2}.activity-carousel-btn:hover{background:#000000b3;transform:translateY(-50%) scale(1.1)}.activity-carousel-btn.prev-btn{left:12px}.activity-carousel-btn.next-btn{right:12px}.checkin-info-card,.checkout-info-card{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:8px;display:flex;gap:12px;padding:12px}.checkin-info-card.no-checkin,.checkout-info-card.no-checkout{background:#f8f9fa;border-color:#dee2e6}.checkin-info-card.has-checkin{background:linear-gradient(135deg,#28a7451a,#28a7450d);border-color:#28a745;box-shadow:0 2px 8px #28a74526;transform:translateY(-1px);transition:all .3s ease}.checkin-info-card.has-checkin .checkin-icon{background:#28a745;box-shadow:0 2px 4px #28a7454d;color:#fff}.checkin-info-card.has-checkin .checkin-content .checkin-time{color:#155724;font-weight:600}.checkin-info-card.has-checkin .checkin-content .checkin-location{color:#28a745;font-weight:500}.checkout-info-card.has-checkout{background:linear-gradient(135deg,#fd7e141a,#fd7e140d);border-color:#fd7e14;box-shadow:0 2px 8px #fd7e1426;transform:translateY(-1px);transition:all .3s ease}.checkout-info-card.has-checkout .checkout-icon{background:#fd7e14;box-shadow:0 2px 4px #fd7e144d;color:#fff}.checkout-info-card.has-checkout .checkout-content .checkout-time{color:#e65100;font-weight:600}.checkout-info-card.has-checkout .checkout-content .checkout-location{color:#fd7e14;font-weight:500}.service-hours.has-service{background:linear-gradient(135deg,#17a2b81a,#17a2b80d);border:1px solid #17a2b84d;border-radius:12px;box-shadow:0 2px 4px #17a2b826;color:#17a2b8}.earned-points.has-points,.service-hours.has-service{display:inline-block;font-size:16px;font-weight:600;padding:6px 12px}.earned-points.has-points{background:linear-gradient(135deg,#ffc10726,#ffc1070d);border:1px solid #ffc10766;border-radius:12px;box-shadow:0 2px 4px #ffc10733;color:#ffc107;position:relative}.earned-points.has-points:before{content:"⭐";font-size:14px;margin-right:4px}.checkin-icon,.checkout-icon{align-items:center;background:#e9ecef;background:var(--border-color);border-radius:50%;color:#666;color:var(--text-light);display:flex;height:40px;justify-content:center;width:40px}.checkin-content,.checkout-content{flex:1 1}.checkin-time,.checkout-time{color:#333;color:var(--text-color);font-size:14px;font-weight:500;margin-bottom:4px}.checkin-location,.checkout-location{color:#666;color:var(--text-light);font-size:12px}.detail-actions{background:#fff;bottom:0;box-shadow:0 -2px 8px #0000001a;left:50%;max-width:414px;padding:16px;position:fixed;transform:translateX(-50%);width:100%;z-index:10}.signup-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);border:none;border-radius:12px;box-shadow:0 4px 12px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:14px 20px;transition:all .3s ease;width:100%}.signup-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.signup-btn:active{box-shadow:0 2px 8px #ff6b6b4d;transform:translateY(0)}.signup-btn:disabled{background:#dee2e6;box-shadow:none;color:#666;color:var(--text-light);cursor:not-allowed}.signup-btn:disabled:hover{box-shadow:none;transform:none}.signup-btn.secondary{background:linear-gradient(135deg,#6c757d,#868e96);box-shadow:0 4px 16px #6c757d4d;color:#fff}.signup-btn.secondary:hover:not(:disabled){box-shadow:0 6px 20px #6c757d66;transform:translateY(-2px)}.signup-btn i{font-size:18px}.participants-list{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md)}.participant-item{align-items:flex-start;background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;display:flex;justify-content:space-between;padding:16px;padding:var(--spacing-md);position:relative;transition:all .3s ease}.participant-item:hover{box-shadow:0 6px 24px #0000001f;transform:translateY(-2px)}.participant-info{flex:1 1;min-width:0}.participant-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.participant-name{color:#333;color:var(--text-color);font-size:16px;font-weight:600}.participant-status{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.participant-status.checked{background:#d4edda;color:#155724}.participant-status.not-checked{background:#f8d7da;color:#721c24}.participant-status.status-registered{background:linear-gradient(135deg,#ff980026,#ff98000d);border:1px solid #ff98004d;color:#e65100}.participant-status.status-checked-in{background:linear-gradient(135deg,#4caf5026,#4caf500d);border:1px solid #4caf504d;color:#2e7d32}.participant-status.status-checked-out{background:linear-gradient(135deg,#2196f326,#2196f30d);border:1px solid #2196f34d;color:#1565c0}.participant-status.status-unknown{background:linear-gradient(135deg,#9e9e9e26,#9e9e9e0d);border:1px solid #9e9e9e4d;color:#424242}.user-status{border:1px solid;border-radius:16px;display:inline-block;font-size:14px;font-weight:500;padding:6px 12px}.user-status.status-not-registered{background:linear-gradient(135deg,#9e9e9e26,#9e9e9e0d);border-color:#9e9e9e4d;color:#616161}.user-status.status-registered{background:linear-gradient(135deg,#2196f326,#2196f30d);border-color:#2196f34d;color:#1565c0}.user-status.status-checked-in{background:linear-gradient(135deg,#4caf5026,#4caf500d);border-color:#4caf504d;color:#2e7d32}.user-status.status-checked-out{background:linear-gradient(135deg,#ff980026,#ff98000d);border-color:#ff98004d;color:#e65100}.participant-details{display:flex;flex-direction:column;gap:6px}.checkin-time,.checkout-time,.participant-location,.participant-phone{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:13px;gap:6px;padding-top:12px}.checkin-time i,.checkout-time i,.participant-location i,.participant-phone i{color:#4ecdc4;width:14px}.participant-actions{bottom:16px;bottom:var(--spacing-md);position:absolute;right:16px;right:var(--spacing-md)}.remove-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8a8a);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:12px;gap:4px;padding:6px 10px;transition:all .3s ease}.remove-btn:hover{box-shadow:0 4px 12px #ff6b6b4d;transform:translateY(-1px)}.modal-overlay{background:#00000080;z-index:1000}.qr-code-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:300px;padding:24px;padding:var(--spacing-lg);text-align:center;width:90%}.qr-code-modal h3{color:#333;color:var(--text-color);font-size:18px;margin-bottom:16px;margin-bottom:var(--spacing-md)}.qr-code-modal img{border-radius:8px;height:150px;margin:16px 0;margin:var(--spacing-md) 0;width:150px}.qr-code-modal p{color:#666;color:var(--text-light);font-size:14px;margin-bottom:16px;margin-bottom:var(--spacing-md)}.close-modal-btn{background:linear-gradient(135deg,#ff6b6b,#ff8a8a);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .3s ease}.close-modal-btn:hover{box-shadow:0 4px 12px #ff6b6b4d;transform:translateY(-1px)}.no-data{color:#666;color:var(--text-light);padding:24px;padding:var(--spacing-lg);text-align:center}.no-data i{font-size:48px;margin-bottom:16px;margin-bottom:var(--spacing-md);opacity:.5}.no-data p{font-size:14px;margin:0}.admin-function-buttons{grid-gap:16px;background:#fff;border-radius:16px;box-shadow:0 2px 12px #ff6b6b14;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);padding:20px 16px 8px;position:relative;z-index:2}.admin-function-btn{align-items:center;background:none;border:none;box-shadow:none;cursor:pointer;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.admin-function-btn:active,.admin-function-btn:hover{transform:translateY(-2px) scale(1.05)}.admin-function-btn i{align-items:center;border-radius:50%;box-shadow:0 2px 8px #ff6b6b26;color:#fff;display:flex;font-size:24px;height:48px;justify-content:center;margin-bottom:8px;width:48px}.admin-function-btn:first-child i{background:linear-gradient(135deg,#ffb199,#ff6b6b)}.admin-function-btn:nth-child(2) i{background:linear-gradient(135deg,#4ecdc4,#38b2ac)}.admin-function-btn:nth-child(3) i{background:linear-gradient(135deg,#ffe66d,#f6d365);color:#ff6b6b}.admin-function-btn:nth-child(4) i{background:linear-gradient(135deg,#95e1d3,#4ecdc4)}.admin-function-btn:nth-child(5) i{background:linear-gradient(135deg,#667eea,#764ba2)}.admin-function-btn:nth-child(6) i{background:linear-gradient(135deg,#ff9a9e,#fecfef)}.admin-function-btn span{color:#333;font-size:13px;margin-top:2px;text-align:center}.admin-points-review-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.declaration-tabs{display:flex;top:72px;z-index:99}.batch-select-only,.declaration-tabs{background:#fff;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);position:-webkit-sticky;position:sticky}.batch-select-only{padding:16px;top:130px;z-index:98}.declaration-tab{background:none;border:none;color:#666;color:var(--text-light);cursor:pointer;flex:1 1;font-size:17px;font-weight:500;padding:16px;position:relative;transition:all .3s}.declaration-tab.active{color:#ff6b6b;color:var(--primary-color);font-weight:600}.declaration-tab.active:after{background:linear-gradient(90deg,#ff6b6b,#ffb199);background:linear-gradient(90deg,var(--primary-color),#ffb199);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:30px}.batch-actions{background:#fff;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);justify-content:space-between;padding:16px}.batch-actions,.batch-select,.checkbox-label{align-items:center;display:flex}.checkbox-label{color:#333;color:var(--text-color);cursor:pointer;font-size:14px}.checkbox-label input[type=checkbox]{display:none}.checkmark{border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:4px;height:20px;margin-right:8px;position:relative;transition:all .3s;width:20px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:#ff6b6b;background:var(--primary-color);border-color:#ff6b6b;border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:10px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.batch-buttons{display:flex;gap:12px}.batch-btn{align-items:center;border:none;border-radius:20px;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;transition:all .3s}.batch-btn:disabled{cursor:not-allowed;opacity:.5}.batch-btn.approve{background:linear-gradient(135deg,#95e1d3,#4ecdc4);background:linear-gradient(135deg,var(--success-color),#4ecdc4);color:#fff}.batch-btn.approve:not(:disabled):hover{box-shadow:0 4px 12px #4ccdc44d;transform:translateY(-1px)}.batch-btn.reject{background:linear-gradient(135deg,#f99,#ff6b6b);background:linear-gradient(135deg,#f99,var(--primary-color));color:#fff}.batch-btn.reject:not(:disabled):hover{box-shadow:0 4px 12px #ff6b6b4d;transform:translateY(-1px)}.success-dialog-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:9999}.success-dialog{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026;max-width:320px;overflow:hidden;width:100%}.success-dialog-header{background:linear-gradient(135deg,#4ecdc4,#44a08d);color:#fff;padding:24px 24px 16px;text-align:center}.success-dialog-icon{align-items:center;background:#fff3;border-radius:50%;box-shadow:0 4px 16px #0000001a;display:flex;height:48px;justify-content:center;margin:0 auto 12px;width:48px}.success-dialog-icon i{color:#fff;font-size:20px}.success-dialog-title{font-size:18px;font-weight:600;margin:0;text-shadow:0 2px 4px #0000001a}.success-dialog-content{padding:20px 24px;text-align:center}.success-dialog-content p{color:#333;font-size:16px;font-weight:500;line-height:1.4;margin:0}.success-dialog-actions{display:flex;gap:12px;padding:0 24px 24px}.success-dialog-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:6px;justify-content:center;padding:12px 16px;transition:all .3s ease}.success-dialog-btn-confirm{background:linear-gradient(135deg,#4ecdc4,#44a08d);box-shadow:0 4px 16px #4ecdc44d;color:#fff}.success-dialog-btn-confirm:hover{box-shadow:0 6px 20px #4ecdc466;transform:translateY(-1px)}.success-dialog-btn-confirm:active{transform:translateY(0)}@media (max-width:480px){.success-dialog-overlay{padding:12px}.success-dialog{border-radius:12px;max-width:100%}.success-dialog-header{padding:20px 20px 12px}.success-dialog-icon{height:40px;width:40px}.success-dialog-icon i{font-size:18px}.success-dialog-title{font-size:16px}.success-dialog-content{padding:16px 20px}.success-dialog-content p{font-size:15px}.success-dialog-actions{gap:10px;padding:0 20px 20px}.success-dialog-btn{font-size:13px;padding:10px 14px}}@media (max-width:360px){.success-dialog-overlay{padding:8px}.success-dialog-header{padding:16px 16px 10px}.success-dialog-icon{height:36px;width:36px}.success-dialog-icon i{font-size:16px}.success-dialog-title{font-size:15px}.success-dialog-content{padding:14px 16px}.success-dialog-content p{font-size:14px}.success-dialog-actions{gap:8px;padding:0 16px 16px}.success-dialog-btn{font-size:12px;padding:8px 12px}}.review-list{padding:16px 16px 100px}.review-item{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);display:flex;margin-bottom:16px;overflow:hidden;transition:all .3s}.review-item:hover{box-shadow:0 4px 20px #ff6b6b1a;transform:translateY(-2px)}.review-checkbox{align-items:center;background:#f8f9fa;display:flex;padding:16px 12px}.review-content{cursor:pointer;flex:1 1;padding:16px}.review-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.review-name{color:#333;color:var(--text-color);font-size:16px;font-weight:600}.review-status{border-radius:16px;font-size:12px;font-weight:500;min-width:60px;padding:4px 12px;text-align:center}.review-status.pending{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.review-status.approved{background:#d1edff;border:1px solid #bee5eb;color:#0c5460}.review-status.rejected{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.review-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.review-title{color:#333;color:var(--text-color);font-size:14px;font-weight:500}.review-points{color:#ff6b6b;color:var(--primary-color);font-size:14px;font-weight:600}.review-time{color:#666;color:var(--text-light);font-size:12px}.admin-review-detail-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.review-detail-content{display:flex;flex-direction:column;gap:24px;padding:16px}.detail-section{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);padding:20px}.section-title{margin-bottom:16px;padding-bottom:8px}.detail-info{gap:16px}.detail-info,.detail-item{display:flex;flex-direction:column}.detail-item{gap:6px}.detail-item label{color:#666;color:var(--text-light);font-size:13px;font-weight:500}.content-text,.detail-item span{font-size:14px}.content-text{background:#f8f9fa;border-left:3px solid #ff6b6b;border-left:3px solid var(--primary-color);border-radius:6px;color:#333;color:var(--text-color);line-height:1.6;margin:0;padding:12px}.points-value{color:#ff6b6b;color:var(--primary-color);font-size:16px}.status-badge{border-radius:20px;display:inline-block;font-size:13px;font-weight:500;min-width:80px;padding:6px 16px;text-align:center}.status-badge.pending{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #ffeaa7;color:#856404}.status-badge.approved{background:linear-gradient(135deg,#d1edff,#bee5eb);border:1px solid #bee5eb;color:#0c5460}.status-badge.rejected{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border:1px solid #f5c6cb;color:#721c24}.status-badge[class*="0"]{background:linear-gradient(135deg,#ff980026,#ff98000d);border:1px solid #ff98004d;color:#e65100}.status-badge[class*="1"]{background:linear-gradient(135deg,#4caf5026,#4caf500d);border:1px solid #4caf504d;color:#2e7d32}.status-badge[class*="2"]{background:linear-gradient(135deg,#f4433626,#f443360d);border:1px solid #f443364d;color:#c62828}.review-actions{display:flex;gap:16px}.review-btn{align-items:center;border:none;border-radius:25px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex:1 1;font-size:15px;font-weight:600;gap:8px;justify-content:center;padding:14px 24px;transition:all .3s}.review-btn i{font-size:16px}.review-btn.approve{background:linear-gradient(135deg,#95e1d3,#4ecdc4);background:linear-gradient(135deg,var(--success-color),#4ecdc4);color:#fff}.review-btn.approve:hover{box-shadow:0 6px 20px #4ccdc44d;transform:translateY(-2px)}.review-btn.reject{background:linear-gradient(135deg,#f99,#ff6b6b);background:linear-gradient(135deg,#f99,var(--primary-color));color:#fff}.review-btn.reject:hover{box-shadow:0 6px 20px #ff6b6b4d;transform:translateY(-2px)}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.empty-state i,.loading-state i{color:#666;color:var(--text-light);font-size:48px;margin-bottom:16px;opacity:.6}.loading-state i.fa-spinner{color:#ff6b6b;color:var(--primary-color);opacity:1}.empty-state p,.loading-state p{color:#666;color:var(--text-light);font-size:14px;margin:0}@media (max-width:375px){.batch-actions{align-items:stretch;flex-direction:column;gap:12px}.batch-buttons{justify-content:center}.review-actions{flex-direction:column}.review-btn{padding:12px 20px}}.admin-volunteer-review-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.volunteer-review-list{padding:16px}.volunteer-review-item{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);display:flex;margin-bottom:16px;overflow:hidden;transition:all .3s}.volunteer-review-item:hover{box-shadow:0 4px 20px #ff6b6b1a;transform:translateY(-2px)}.volunteer-review-content{cursor:pointer;flex:1 1;padding:16px}.volunteer-review-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.volunteer-name{color:#333;color:var(--text-color);font-size:16px;font-weight:600}.volunteer-status{border-radius:16px;font-size:12px;font-weight:500;min-width:60px;padding:4px 12px;text-align:center}.volunteer-status.pending{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.volunteer-status.approved{background:#d1edff;border:1px solid #bee5eb;color:#0c5460}.volunteer-status.rejected{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.volunteer-status[class*="0"]{background:linear-gradient(135deg,#ff980026,#ff98000d);border:1px solid #ff98004d;color:#e65100}.volunteer-status[class*="1"]{background:linear-gradient(135deg,#4caf5026,#4caf500d);border:1px solid #4caf504d;color:#2e7d32}.volunteer-status[class*="2"]{background:linear-gradient(135deg,#f4433626,#f443360d);border:1px solid #f443364d;color:#c62828}.volunteer-info{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.volunteer-phone{color:#333;color:var(--text-color);font-size:14px;font-weight:500}.volunteer-id{font-size:13px}.volunteer-id,.volunteer-time{color:#666;color:var(--text-light)}.volunteer-time{font-size:12px}.admin-volunteer-review-detail-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.admin-volunteer-review-detail-page .detail-section:first-child{background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e9ecef}.admin-volunteer-review-detail-page .detail-section:first-child .section-title{color:#ff6b6b;color:var(--primary-color)}.admin-volunteer-review-detail-page .detail-section:first-child .section-title:after{background:linear-gradient(90deg,#4ecdc4,#4ecdc4);background:linear-gradient(90deg,var(--secondary-color),#4ecdc4)}.volunteer-id-info{background:#f8f9fa;border-left:3px solid #4ecdc4;border-left:3px solid var(--secondary-color);border-radius:6px;margin-top:8px;padding:12px}.volunteer-id-info span{font-family:Courier New,monospace;font-weight:600;letter-spacing:1px}.community-info{align-items:center;background:linear-gradient(135deg,#4ecdc4,#4ecdc4);background:linear-gradient(135deg,var(--secondary-color),#4ecdc4);border-radius:16px;color:#fff;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px}.community-info i{font-size:12px}@media (max-width:375px){.volunteer-review-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.volunteer-name{flex:1 1;font-size:15px;margin-right:8px}.volunteer-status{flex-shrink:0}}.admin-points-redemption-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.admin-redemption-container{display:flex;flex-direction:column;gap:24px;padding:20px}.scan-area{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);padding:24px;text-align:center}.scan-frame{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;height:200px;justify-content:center;margin:0 auto 20px;overflow:hidden;position:relative;width:200px}.scan-frame.scanning{animation:scanPulse 2s infinite;border:2px solid #ff6b6b;border:2px solid var(--primary-color)}.scan-frame.scanned{background:linear-gradient(135deg,#d1edff,#95e1d3);border:2px solid #95e1d3;border:2px solid var(--success-color)}@keyframes scanPulse{0%,to{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 0 #ff6b6b66}50%{border-color:#ffb199;box-shadow:0 0 0 10px #ff6b6b00}}.scan-corner{border:3px solid #ff6b6b;border:3px solid var(--primary-color);height:20px;position:absolute;width:20px}.scan-corner.top-left{border-bottom:none;border-right:none;left:10px;top:10px}.scan-corner.top-right{border-bottom:none;border-left:none;right:10px;top:10px}.scan-corner.bottom-left{border-right:none;border-top:none;bottom:10px;left:10px}.scan-corner.bottom-right{border-left:none;border-top:none;bottom:10px;right:10px}.scan-line{background:linear-gradient(90deg,#0000,#ff6b6b,#0000);background:linear-gradient(90deg,#0000,var(--primary-color),#0000);height:2px;left:10px;opacity:0;position:absolute;right:10px;top:0}.scan-line.scanning{animation:scanLineMove 2s linear infinite;opacity:1}@keyframes scanLineMove{0%{transform:translateY(0)}to{transform:translateY(190px)}}.scan-success{align-items:center;color:#95e1d3;color:var(--success-color);display:flex;flex-direction:column;gap:8px}.scan-success i{color:#4ecdc4;font-size:48px}.scan-success span{color:#4ecdc4;font-size:14px;font-weight:600}.scan-tip{align-items:center;display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.scan-tip i{color:#ff6b6b;color:var(--primary-color);font-size:24px}.scan-tip p{color:#666;color:var(--text-light);font-size:14px;margin:0}.scan-buttons{display:flex;gap:16px;justify-content:center}.scan-btn{align-items:center;border:none;border-radius:25px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .3s}.scan-btn.start{background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);color:#fff}.scan-btn.start:hover{box-shadow:0 6px 20px #ff6b6b4d;transform:translateY(-2px)}.scan-btn.reset{background:linear-gradient(135deg,#666,#999);background:linear-gradient(135deg,var(--text-light),#999);color:#fff}.scan-btn.reset:hover{box-shadow:0 6px 20px #6666664d;transform:translateY(-2px)}.redemption-settings{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);padding:20px}.setting-item{margin-bottom:20px}.setting-item:last-child{margin-bottom:0}.setting-item label{color:#333;color:var(--text-color);display:block;font-size:14px;font-weight:600;margin-bottom:8px}.setting-item input{border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:all .3s;width:100%}.setting-item input:focus{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a;outline:none}.redemption-actions,.redemption-btn{display:flex;justify-content:center}.redemption-btn{align-items:center;background:linear-gradient(135deg,#95e1d3,#4ecdc4);background:linear-gradient(135deg,var(--success-color),#4ecdc4);border:none;border-radius:30px;box-shadow:0 4px 16px #4ccdc44d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;gap:10px;min-width:160px;padding:16px 32px;transition:all .3s}.redemption-btn:hover:not(.disabled){box-shadow:0 8px 25px #4ccdc466;transform:translateY(-3px)}.redemption-btn.disabled{background:#ccc;box-shadow:none;cursor:not-allowed;opacity:.5}.redemption-btn i{font-size:18px}@media (max-width:375px){.admin-redemption-container{gap:20px;padding:16px}.scan-frame{height:160px;width:160px}.scan-corner{height:16px;width:16px}.redemption-btn{font-size:15px;min-width:140px;padding:14px 28px}}.admin-activity-create-page{background:#f8f9fa;background:var(--background-color);min-height:100vh}.activity-create-form{display:flex;flex-direction:column;gap:24px;padding:20px}.form-section{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);padding:20px}.section-title{border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--border-color);color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin-bottom:20px;padding-bottom:10px;position:relative}.section-title:after{background:linear-gradient(90deg,#ff6b6b,#ffb199);background:linear-gradient(90deg,var(--primary-color),#ffb199);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:30px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{color:#333;color:var(--text-color);display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-input{border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .3s;width:100%}.form-input:focus{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a;outline:none}.form-input::placeholder{color:#999}.form-select{background:#fff;border:2px solid #e9ecef;border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;cursor:pointer;font-size:14px;padding:12px 16px;transition:all .3s;width:100%}.form-select:focus{border-color:#ff6b6b;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a;outline:none}.time-range-container{display:flex;gap:16px}.time-input-group{flex:1 1}.time-label{color:#333;color:var(--text-color);display:block;font-weight:600;margin-bottom:8px}.time-input,.time-label{font-size:13px}.file-upload{display:flex;flex-direction:column;gap:16px}.file-input-hidden{display:none}.upload-btn{align-items:center;background:#f8f9fa;border:2px dashed #e9ecef;border:2px dashed var(--border-color);border-radius:8px;color:#666;color:var(--text-light);cursor:pointer;display:flex;font-size:14px;gap:10px;justify-content:center;padding:16px 24px;transition:all .3s}.upload-btn:hover{background:#ff6b6b0d;border-color:#ff6b6b;border-color:var(--primary-color);color:#ff6b6b;color:var(--primary-color)}.upload-btn i{font-size:18px}.cover-preview{border-radius:8px;box-shadow:0 2px 8px #0000001a;box-shadow:var(--shadow);display:inline-block;overflow:hidden;position:relative}.cover-preview img{display:block;height:80px;object-fit:cover;width:120px}.remove-cover{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:4px;top:4px;transition:all .3s;width:24px}.remove-cover:hover{background:#ff6b6bcc}.form-actions{padding:20px}.form-actions,.submit-btn{display:flex;justify-content:center}.submit-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);background:linear-gradient(135deg,var(--primary-color),#ffb199);border:none;border-radius:30px;box-shadow:0 4px 16px #ff6b6b4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;gap:12px;min-width:160px;padding:16px 32px;transition:all .3s}.submit-btn:hover{box-shadow:0 8px 25px #ff6b6b66;transform:translateY(-3px)}.submit-btn i{font-size:18px}.form-input[type=number]{font-weight:600;text-align:center}.form-input[rows]{line-height:1.5;min-height:100px;resize:vertical}@media (max-width:375px){.activity-create-form{gap:20px;padding:16px}.form-section{padding:16px}.time-range-container{flex-direction:column;gap:12px}.submit-btn{font-size:15px;min-width:140px;padding:14px 28px}.cover-preview img{height:67px;width:100px}}.volunteer-register-form{padding:16px;padding:var(--spacing-md)}.register-notice{display:flex;flex-direction:column;gap:12px;margin:20px 0}.notice-item{align-items:center;background:#f8f9fa;border-left:4px solid #ff6b6b;border-left:4px solid var(--primary-color);border-radius:8px;border-radius:var(--border-radius);display:flex;gap:8px;padding:12px}.notice-item i{color:#ff6b6b;color:var(--primary-color);font-size:16px}.notice-item span{color:#333;color:var(--text-color);font-size:14px;line-height:1.4}.volunteer-register-form .form-actions{background:#fff;border-top:1px solid #e9ecef;border-top:1px solid var(--border-color);bottom:0;margin-top:20px;padding:16px;padding:var(--spacing-md);position:-webkit-sticky;position:sticky}.volunteer-register-form .submit-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border:none;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 4px 16px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:16px;transition:all .3s ease;width:100%}.volunteer-register-form .submit-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.volunteer-register-form .submit-btn i{font-size:16px}.qr-modal-overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.qr-modal{animation:fadeIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-height:80vh;max-width:400px;overflow-x:hidden;overflow-y:auto;position:relative;width:90%;z-index:2001}.qr-modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:16px 20px}.qr-modal-header h3{color:#222;font-size:16px;font-weight:600;margin:0}.qr-modal-content{overflow:visible;padding:24px;position:relative;text-align:center;z-index:1}.qr-code-container,.qr-code-display{margin-bottom:20px}.qr-code-display{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;overflow:hidden;padding:32px 24px;position:relative}.qr-code-display:before{animation:rotate 20s linear infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.qr-code-wrapper{align-items:center;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.qr-code-wrapper i{animation:pulse 2s ease-in-out infinite;color:#fff;font-size:80px;text-shadow:0 4px 8px #0000004d}.qr-code-text h4{color:#fff;font-size:18px;font-weight:600;margin:0 0 8px;text-shadow:0 2px 4px #0000004d}.qr-code-text p{color:#ffffffe6;font-size:14px;margin:0;text-shadow:0 1px 2px #0000004d}.qr-code-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:16px}.qr-info-item{align-items:center;color:#555;display:flex;font-size:14px;gap:12px;margin-bottom:12px}.qr-info-item:last-child{margin-bottom:0}.qr-info-item i{color:#ff6b6b;color:var(--primary-color);font-size:16px;text-align:center;width:16px}.qr-activity-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;margin-top:20px;padding:16px}.qr-modal-actions{display:flex;gap:12px;margin-top:20px;position:relative;width:100%;z-index:2}.download-qr-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ee5a52);border:none;border-radius:12px;box-shadow:0 4px 12px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 16px;position:relative;text-decoration:none;transition:all .3s ease;z-index:1}.download-qr-btn:hover{box-shadow:0 6px 16px #ff6b6b66;transform:translateY(-2px)}.download-qr-btn i{font-size:16px}.declaration-card{background:#fff;border-left:4px solid #ff6b6b;border-left:4px solid var(--primary-color);border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;margin-bottom:16px;margin-bottom:var(--spacing-md);padding:16px;padding:var(--spacing-md);transition:all .3s ease}.declaration-card:hover{box-shadow:0 4px 16px #ff6b6b26;transform:translateY(-2px)}.declaration-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.declaration-title{color:#333;color:var(--text-color);flex:1 1;font-size:16px;font-weight:600;margin-right:12px}.declaration-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.declaration-status.pending,.declaration-status[class*="0"]{background:#fff3cd;color:#856404}.declaration-status.approved,.declaration-status[class*="1"]{background:#d4edda;color:#155724}.declaration-status.rejected,.declaration-status[class*="2"]{background:#f8d7da;color:#721c24}.declaration-info{margin-bottom:12px}.declaration-info-row{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:14px;gap:8px;margin-bottom:6px}.declaration-info-row i{color:#ff6b6b;color:var(--primary-color);width:14px}.declaration-content{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;color:var(--text-color);display:-webkit-box;font-size:14px;line-height:1.5;margin-bottom:12px;overflow:hidden}.declaration-footer{align-items:center;display:flex;justify-content:space-between}.points-info{align-items:center;color:#ff6b6b;color:var(--primary-color);display:flex;font-size:14px;font-weight:600;gap:6px}.points-info i{font-size:16px}.declaration-arrow{font-size:14px}.declaration-arrow,.empty-state{color:#666;color:var(--text-light)}.empty-state{padding:40px 20px;text-align:center}.empty-state p{font-size:14px;margin:0}.redemption-card{background:#fff;border-left:4px solid #4ecdc4;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;margin-bottom:16px;margin-bottom:var(--spacing-md);padding:16px;padding:var(--spacing-md);transition:all .3s ease}.redemption-card:hover{box-shadow:0 4px 16px #4ecdc426;transform:translateY(-2px)}.redemption-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.redemption-title{color:#333;color:var(--text-color);flex:1 1;font-size:16px;font-weight:600;margin-right:12px;text-align:left}.redemption-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.redemption-status.completed{background:#d4edda;color:#155724}.redemption-status:not(.completed){background:#e2e3e5;color:#495057}.redemption-info{margin-bottom:12px}.redemption-info-row{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:14px;gap:8px;margin-bottom:6px}.redemption-info-row i{color:#4ecdc4;width:14px}.redemption-content{border-top:1px solid #f0f0f0;color:#666;color:var(--text-light);font-size:14px;line-height:1.5;margin-bottom:12px;padding:8px 0}.redemption-footer{align-items:center;display:flex;justify-content:space-between}.redemption-footer .points-info{color:#4ecdc4}.redemption-arrow{color:#666;color:var(--text-light);font-size:14px}.redemption-status-card{align-items:center;background:linear-gradient(135deg,#4ecdc4,#38b2ac);border-radius:16px;box-shadow:0 4px 20px #4ecdc433;color:#fff;display:flex;gap:16px;gap:var(--spacing-md);margin:12px;padding:24px;padding:var(--spacing-lg)}.status-icon{align-items:center;background:#fff3;border-radius:50%;display:flex;font-size:24px;height:60px;justify-content:center;width:60px}.status-info h3{font-size:20px;font-weight:600;margin:0 0 4px}.status-info p{font-size:14px;margin:0;opacity:.9}.redemption-info-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin:12px;padding:16px;padding:var(--spacing-md)}.redemption-info-section .section-title{color:#333;color:var(--text-color);font-size:16px;font-weight:600;margin:0 0 16px;margin:0 0 var(--spacing-md) 0}.info-list{display:flex;flex-direction:column;gap:12px}.info-item{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:8px 0}.info-item:last-child{border-bottom:none}.info-label{align-items:center;color:var(--text-light);display:flex;gap:8px}.info-label i{color:#4ecdc4;width:16px}.info-value{color:var(--text-color);font-weight:500}.points-value{color:#4ecdc4;font-weight:600}.action-buttons{display:flex;gap:16px;gap:var(--spacing-md);margin-top:24px;margin-top:var(--spacing-lg)}.btn-secondary{align-items:center;background:#fff;border:1px solid #4ecdc4;border-radius:12px;color:#4ecdc4;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;margin:12px;padding:12px 16px;transition:all .3s ease}.btn-secondary:hover{background:#4ecdc4;color:#fff}.activity-status[class*="1"]{background:linear-gradient(135deg,#4caf5026,#4caf500d);border:1px solid #4caf504d;border-radius:20px;color:#2e7d32;font-size:12px;font-weight:600;padding:4px 12px}.activity-status[class*="2"]{background:linear-gradient(135deg,#ff980026,#ff98000d);border:1px solid #ff98004d;border-radius:20px;color:#e65100;font-size:12px;font-weight:600;padding:4px 12px}.activity-status[class*="3"]{background:linear-gradient(135deg,#9e9e9e26,#9e9e9e0d);border:1px solid #9e9e9e4d;border-radius:20px;color:#616161;font-size:12px;font-weight:600;padding:4px 12px}.community-selector{margin-left:auto;position:relative}.community-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:linear-gradient(135deg,#fff,#fafafa);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:2px solid #e8e8e8;border-radius:12px;box-shadow:0 2px 8px #0000000d;color:#333;cursor:pointer;font-size:15px;font-weight:500;min-width:140px;padding:10px 40px 10px 12px;transition:all .3s ease}.community-select:focus{background:linear-gradient(135deg,#fff,#fff5f5);box-shadow:0 0 0 3px #ff6b6b26,0 4px 12px #ff6b6b1a;outline:none}.community-select:focus,.community-select:hover{border-color:#ff6b6b;border-color:var(--primary-color)}.community-select:hover{box-shadow:0 4px 12px #ff6b6b1a;transform:translateY(-1px)}.community-select:active{box-shadow:0 2px 8px #ff6b6b26;transform:translateY(0)}.overview-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.overview-header i{color:#ff6b6b;font-size:18px;margin-right:8px}.qr-container{display:flex;justify-content:center;margin-bottom:20px}.qr-code-wrapper{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 16px #0000001a;padding:20px}.qr-display{align-items:center;display:flex;gap:20px}.qr-code-border{background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:12px;box-shadow:0 4px 12px #ff6b6b4d;padding:12px}.qr-canvas{background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:block;height:250px;width:250px}.qr-info h4{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.qr-info p{color:#666;font-size:14px;margin:0 0 12px}.qr-details{display:flex;gap:12px}.qr-user{background:#f8f9fa;color:#666}.qr-points,.qr-user{border-radius:6px;font-size:12px;padding:4px 8px}.qr-points{background:linear-gradient(135deg,#ff6b6b,#ffb199);color:#fff;font-weight:600}.qr-loading{align-items:center;display:flex;gap:20px;padding:20px}.qr-loading .qr-icon{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ffb199);border-radius:12px;color:#fff;display:flex;font-size:24px;height:60px;justify-content:center;width:60px}.qr-loading .qr-text h4{color:#333;font-size:16px;margin:0 0 4px}.qr-loading .qr-text p{color:#666;font-size:14px;margin:0}@media (max-width:768px){.qr-display{flex-direction:column;text-align:center}.qr-details{justify-content:center}}.user-info-area{margin:20px 0;padding:0 20px}.user-info-card{background:linear-gradient(135deg,#fff,#f8f9fa);border:1px solid #ff6b6b1a;border-radius:16px;box-shadow:0 8px 32px #ff6b6b1a;overflow:hidden;transition:all .3s ease}.user-info-card:hover{box-shadow:0 12px 40px #ff6b6b26;transform:translateY(-2px)}.user-info-header{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8e8e);color:#fff;display:flex;justify-content:space-between;padding:20px;position:relative}.user-info-header:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='25' cy='25' r='1' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='75' cy='75' r='1' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='50' cy='10' r='.5' fill='rgba(255,255,255,0.05)'/%3E%3Ccircle cx='10' cy='60' r='.5' fill='rgba(255,255,255,0.05)'/%3E%3Ccircle cx='90' cy='40' r='.5' fill='rgba(255,255,255,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;opacity:.3;position:absolute;right:0;top:0}.header-icon{font-size:32px;margin-right:15px;z-index:1}.header-content{flex:1 1;z-index:1}.header-content h3{font-size:18px;font-weight:600;margin:0 0 4px;text-shadow:0 1px 2px #0000001a}.header-content p{font-size:12px;margin:0;opacity:.9}.header-status{align-items:center;background:#fff3;border-radius:20px;display:flex;font-size:12px;font-weight:500;gap:6px;padding:6px 12px;z-index:1}.header-status i{font-size:14px}.user-info-content{padding:24px}.info-section{display:flex;flex-direction:column;gap:16px}.info-item{align-items:center;background:#fff;border:1px solid #f0f0f0;border-radius:12px;display:flex;overflow:hidden;padding:16px;position:relative;transition:all .2s ease}.info-item:before{background:linear-gradient(135deg,#ff6b6b,#ff8e8e);bottom:0;content:"";left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .2s ease;width:4px}.info-item:hover{border-color:#ff6b6b;box-shadow:0 4px 12px #ff6b6b1a;transform:translateX(4px)}.info-item:hover:before{transform:scaleY(1)}.item-icon{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8e8e);border-radius:10px;box-shadow:0 4px 8px #ff6b6b4d;color:#fff;display:flex;font-size:16px;height:40px;justify-content:center;margin-right:16px;width:40px}.item-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.info-label{font-size:12px;letter-spacing:.5px;text-transform:uppercase}.info-value{font-size:16px}.info-value.points{color:#ff6b6b;font-size:20px;font-weight:700}.points-item{background:linear-gradient(135deg,#fff5f5,#fff);border-color:#ff6b6b}.points-badge{background:linear-gradient(135deg,#ff6b6b,#ff8e8e);border-radius:20px;box-shadow:0 2px 8px #ff6b6b4d;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.info-footer{border-top:1px solid #f0f0f0;margin-top:20px;padding-top:16px}.footer-item{align-items:center;color:#666;display:flex;font-size:12px;gap:8px}.footer-item i{color:#ff6b6b;font-size:14px}@media (max-width:768px){.user-info-area{margin:15px 0;padding:0 15px}.user-info-header{padding:16px}.header-icon{font-size:28px;margin-right:12px}.header-content h3{font-size:16px}.header-content p{font-size:11px}.user-info-content{padding:20px}.info-item{padding:14px}.item-icon{font-size:14px;height:36px;margin-right:14px;width:36px}.info-value{font-size:15px}.info-value.points{font-size:18px}}.required{color:#ff6b6b;font-weight:700;margin-left:2px}.wechat-scan-tip{background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e8f4fd;border-radius:20px;box-shadow:0 8px 32px #0000001a;margin:40px 20px;padding:40px 20px;text-align:center}.tip-icon{color:#07c160;font-size:64px;margin-bottom:20px;text-shadow:0 2px 8px #07c16033}.tip-content h3{color:#333;font-size:20px;font-weight:600;margin:0 0 12px}.tip-content p{color:#666;font-size:14px;line-height:1.6;margin:0 0 30px}.tip-steps{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.step-item{flex-direction:column;gap:8px;min-width:80px;padding-bottom:16px}.step-item,.step-number{align-items:center;display:flex}.step-number{background:linear-gradient(135deg,#ff6b6b,#ff8e8e);border-radius:50%;box-shadow:0 4px 12px #ff6b6b4d;color:#fff;font-size:14px;font-weight:600;height:32px;justify-content:center;width:32px}.step-text{color:#666;font-size:12px;line-height:1.4;text-align:center}@media (max-width:768px){.wechat-scan-tip{margin:30px 15px;padding:30px 15px}.tip-icon{font-size:48px;margin-bottom:16px}.tip-content h3{font-size:18px;margin-bottom:10px}.tip-content p{font-size:13px;margin-bottom:24px}.tip-steps{gap:16px}.step-item{min-width:70px}.step-number{font-size:12px;height:28px;width:28px}.step-text{font-size:11px}}.activity-info-container{background:#fff;border:1px solid #ff6b6b1a;border-radius:16px;box-shadow:0 4px 20px #ff6b6b26;margin:20px 0;overflow:hidden;position:relative}.activity-info-container:before{background:linear-gradient(90deg,#ff6b6b,#ff8e8e,#ffa8a8);border-radius:16px 16px 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.loading-container{background:linear-gradient(135deg,#fafafa,#f5f5f5);color:#666;padding:40px 24px;text-align:center}.loading-container i{animation:pulse 1.5s ease-in-out infinite;color:#ff6b6b;font-size:20px;margin-right:12px}.loading-container span{font-size:15px;font-weight:500}.error-container{background:linear-gradient(135deg,#fff5f5,#ffeaea);border:1px solid #ff6b6b33;border-radius:12px;color:#ff6b6b;margin:16px;padding:40px 24px;text-align:center}.error-container i{color:#ff4757;font-size:20px;margin-right:12px}.error-container span{font-size:15px;font-weight:500}.activity-info .activity-header{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8e8e,#ffa8a8);color:#fff;display:flex;font-size:17px;font-weight:600;padding:20px 24px;position:relative}.activity-info .activity-header:after{background:#fff3;bottom:0;content:"";height:1px;left:0;position:absolute;right:0}.activity-info .activity-header i{color:#ffffffe6;font-size:20px;margin-right:12px}.activity-info .activity-header span{text-shadow:0 1px 2px #0000001a}.activity-info .activity-content{background:linear-gradient(135deg,#fafafa,#fff);padding:24px}.activity-info .activity-content .activity-title{background:linear-gradient(135deg,#fff,#f8f9fa);border-left:4px solid #ff6b6b;border-radius:12px;box-shadow:0 2px 8px #0000000d;color:#2c3e50;font-size:20px;font-weight:700;line-height:1.4;margin-bottom:20px;padding:16px}.activity-info .activity-content .activity-details .detail-item{align-items:center;background:#fff;border:1px solid #ff6b6b1a;border-radius:10px;box-shadow:0 2px 6px #0000000a;display:flex;flex-direction:row;margin-bottom:16px;padding:12px 16px;transition:all .3s ease}.activity-info .activity-content .activity-details .detail-item:hover{box-shadow:0 4px 12px #ff6b6b26;transform:translateY(-2px)}.activity-info .activity-content .activity-details .detail-item i{background:#ff6b6b1a;border-radius:8px;color:#ff6b6b;font-size:16px;margin-right:12px;padding:8px;text-align:center;width:20px}.activity-info .activity-content .activity-details .detail-item span{color:#444;flex:1 1;font-size:15px;font-weight:500}.activity-info .activity-content .activity-details .activity-content-text{background:linear-gradient(135deg,#fff,#f8f9fa);border:1px solid #ff6b6b1a;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-top:20px;padding:20px}.activity-info .activity-content .activity-details .activity-content-text span{border-bottom:2px solid #ff6b6b;color:#2c3e50;display:block;font-size:15px;font-weight:700;margin-bottom:12px;padding-bottom:8px}.activity-info .activity-content .activity-details .activity-content-text p{color:#555;font-size:15px;line-height:1.7;margin:0;text-align:justify;white-space:pre-wrap}.checkin-info{border-top:2px solid #ff6b6b1a;margin-top:8px}.checkin-info .checkin-header{align-items:center;background:linear-gradient(135deg,#f8fff8,#e8f5e8);display:flex;padding:20px 24px;position:relative}.checkin-info .checkin-header:after{background:#28a74533;bottom:0;content:"";height:1px;left:0;position:absolute;right:0}.checkin-info .checkin-header .header-icon{margin-right:16px}.checkin-info .checkin-header .header-icon i{align-items:center;background:#28a7451a;border-radius:12px;color:#28a745;display:flex;font-size:24px;height:48px;justify-content:center;padding:12px;width:48px}.checkin-info .checkin-header .header-content{display:flex;flex-direction:column}.checkin-info .checkin-header .header-content .header-title{color:#2d5a2d;font-size:18px;font-weight:700;margin-bottom:4px;text-shadow:0 1px 2px #0000000d}.checkin-info .checkin-header .header-content .header-subtitle{color:#5a8a5a;font-size:14px;font-weight:500}.checkin-info .checkin-content{background:linear-gradient(135deg,#fafafa,#fff);padding:24px}.checkin-info .checkin-content .checkin-status-card{display:flex;gap:16px;margin-bottom:24px}.checkin-info .checkin-content .checkin-status-card .status-indicator{flex:1 1}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-success{align-items:center;background:linear-gradient(135deg,#d4edda,#c3e6cb);border:2px solid #28a745;border-radius:12px;box-shadow:0 4px 12px #28a74533;color:#155724;display:flex;font-size:15px;font-weight:600;justify-content:center;padding:16px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-success i{font-size:18px;margin-right:8px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-pending{align-items:center;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107;border-radius:12px;box-shadow:0 4px 12px #ffc10733;color:#856404;display:flex;font-size:15px;font-weight:600;justify-content:center;padding:16px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-pending i{font-size:18px;margin-right:8px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-completed{align-items:center;background:linear-gradient(135deg,#cce5ff,#b3d9ff);border:2px solid #007bff;border-radius:12px;box-shadow:0 4px 12px #007bff33;color:#004085;display:flex;font-size:15px;font-weight:600;justify-content:center;padding:16px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-completed i{font-size:18px;margin-right:8px}.checkin-info .checkin-content .checkin-details{margin-bottom:20px}.checkin-info .checkin-content .checkin-details .details-header{align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa);border-left:4px solid #28a745;border-radius:10px;display:flex;margin-bottom:16px;padding:12px 16px}.checkin-info .checkin-content .checkin-details .details-header i{background:#28a7451a;border-radius:8px;color:#28a745;font-size:16px;margin-right:12px;padding:8px}.checkin-info .checkin-content .checkin-details .details-header span{color:#2d5a2d;font-size:15px;font-weight:600}.checkin-info .checkin-content .checkin-details .details-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.checkin-info .checkin-content .checkin-details .details-grid .detail-card{align-items:center;background:#fff;border:1px solid #28a7451a;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;padding:16px;transition:all .3s ease}.checkin-info .checkin-content .checkin-details .details-grid .detail-card:hover{box-shadow:0 6px 16px #28a74526;transform:translateY(-2px)}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-icon{margin-right:16px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-icon i{align-items:center;background:#28a7451a;border-radius:10px;color:#28a745;display:flex;font-size:18px;height:40px;justify-content:center;padding:10px;width:40px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-content{display:flex;flex-direction:column}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-content .detail-label{color:#6c757d;font-size:12px;font-weight:500;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-content .detail-value{color:#2c3e50;font-size:14px;font-weight:600;line-height:1.4}.checkin-info .checkin-content .no-checkin-info{align-items:center;background:linear-gradient(135deg,#fff9e6,#fff3cd);border:2px solid #ffc1074d;border-radius:16px;box-shadow:0 4px 16px #ffc10726;display:flex;padding:24px}.checkin-info .checkin-content .no-checkin-info .no-checkin-icon{margin-right:20px}.checkin-info .checkin-content .no-checkin-info .no-checkin-icon i{align-items:center;background:#ffc1071a;border-radius:16px;color:#ffc107;display:flex;font-size:32px;height:64px;justify-content:center;padding:16px;width:64px}.checkin-info .checkin-content .no-checkin-info .no-checkin-content{display:flex;flex-direction:column}.checkin-info .checkin-content .no-checkin-info .no-checkin-content .no-checkin-title{color:#856404;font-size:18px;font-weight:700;margin-bottom:8px}.checkin-info .checkin-content .no-checkin-info .no-checkin-content .no-checkin-desc{color:#a0781a;font-size:14px;font-weight:500}@media (max-width:480px){.activity-info-container{border-radius:12px;margin:16px 0}.activity-info .activity-header{font-size:16px;padding:16px 20px}.activity-info .activity-header i{font-size:18px;margin-right:10px;padding:6px}.activity-info .activity-content{padding:20px}.activity-info .activity-content .activity-title{font-size:18px;margin-bottom:16px;padding:14px}.activity-info .activity-content .activity-details .detail-item{margin-bottom:12px;padding:10px 14px}.activity-info .activity-content .activity-details .detail-item i{font-size:14px;margin-right:10px;padding:6px;width:18px}.activity-info .activity-content .activity-details .detail-item span{font-size:14px}.activity-info .activity-content .activity-details .activity-content-text{margin-top:16px;padding:16px}.activity-info .activity-content .activity-details .activity-content-text span{font-size:14px;margin-bottom:10px}.activity-info .activity-content .activity-details .activity-content-text p{font-size:14px;line-height:1.6;margin:0}.checkin-info .checkin-header{padding:16px 20px}.checkin-info .checkin-header .header-icon{margin-right:12px}.checkin-info .checkin-header .header-icon i{font-size:20px;height:36px;padding:8px;width:36px}.checkin-info .checkin-header .header-content .header-title{font-size:16px;margin-bottom:2px}.checkin-info .checkin-header .header-content .header-subtitle{font-size:12px}.checkin-info .checkin-content{padding:20px}.checkin-info .checkin-content .checkin-status-card{gap:12px;margin-bottom:20px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-completed,.checkin-info .checkin-content .checkin-status-card .status-indicator .status-pending,.checkin-info .checkin-content .checkin-status-card .status-indicator .status-success{font-size:14px;padding:12px}.checkin-info .checkin-content .checkin-status-card .status-indicator .status-completed i,.checkin-info .checkin-content .checkin-status-card .status-indicator .status-pending i,.checkin-info .checkin-content .checkin-status-card .status-indicator .status-success i{font-size:16px;margin-right:6px}.checkin-info .checkin-content .checkin-details{margin-bottom:16px}.checkin-info .checkin-content .checkin-details .details-header{margin-bottom:12px;padding:10px 12px}.checkin-info .checkin-content .checkin-details .details-header i{font-size:14px;margin-right:8px;padding:6px}.checkin-info .checkin-content .checkin-details .details-header span{font-size:14px}.checkin-info .checkin-content .checkin-details .details-grid{gap:10px;grid-template-columns:1fr}.checkin-info .checkin-content .checkin-details .details-grid .detail-card{padding:12px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-icon{margin-right:12px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-icon i{font-size:16px;height:32px;padding:8px;width:32px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-content .detail-label{font-size:11px;margin-bottom:2px}.checkin-info .checkin-content .checkin-details .details-grid .detail-card .detail-content .detail-value{font-size:13px}.checkin-info .checkin-content .no-checkin-info{padding:20px}.checkin-info .checkin-content .no-checkin-info .no-checkin-icon{margin-right:16px}.checkin-info .checkin-content .no-checkin-info .no-checkin-icon i{font-size:28px;height:52px;padding:12px;width:52px}.checkin-info .checkin-content .no-checkin-info .no-checkin-content .no-checkin-title{font-size:16px;margin-bottom:6px}.checkin-info .checkin-content .no-checkin-info .no-checkin-content .no-checkin-desc{font-size:13px}.error-container,.loading-container{padding:32px 20px}.error-container i,.loading-container i{font-size:18px;margin-right:10px}.error-container span,.loading-container span{font-size:14px}}.checkin-button-container{background:linear-gradient(135deg,#f8f9fa,#fff);border-top:1px solid #ff6b6b1a;padding:20px 24px}.checkin-button{align-items:center;border:none;border-radius:12px;box-shadow:0 4px 12px #0000001a;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:12px;justify-content:center;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s ease;width:100%}.checkin-button:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.checkin-button:hover:before{left:100%}.checkin-button.checkin{background:linear-gradient(135deg,#28a745,#20c997);border:2px solid #28a745;color:#fff}.checkin-button.checkin:hover:not(.disabled){background:linear-gradient(135deg,#218838,#1e7e34);box-shadow:0 6px 20px #28a7454d;transform:translateY(-2px)}.checkin-button.checkout{background:linear-gradient(135deg,#007bff,#0056b3);border:2px solid #007bff;color:#fff}.checkin-button.checkout:hover:not(.disabled){background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 6px 20px #007bff4d;transform:translateY(-2px)}.checkin-button.completed{background:linear-gradient(135deg,#6c757d,#5a6268);border:2px solid #6c757d;color:#fff;cursor:not-allowed}.checkin-button.disabled{box-shadow:0 2px 6px #0000001a!important;cursor:not-allowed;opacity:.6;transform:none!important}.checkin-button i{font-size:18px}.checkin-button span{font-weight:600;letter-spacing:.5px}@media (max-width:480px){.checkin-button-container{padding:16px 20px}.checkin-button{border-radius:10px;font-size:15px;gap:10px;padding:14px 20px}.checkin-button i{font-size:16px}}.success-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.success-modal{animation:slideUp .4s ease-out;box-shadow:0 20px 40px #00000026;max-width:320px;padding:40px 30px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.success-modal:before{background:linear-gradient(90deg,#28a745,#20c997);border-radius:20px 20px 0 0}.success-icon{margin-bottom:20px}.success-icon i{color:#28a745}.success-content{margin-bottom:25px}.success-title{color:#2c3e50;font-size:22px;line-height:1.3;margin:0 0 8px}.success-subtitle{color:#6c757d;font-size:14px}.success-animation{display:flex;justify-content:center}.loading-dots{display:flex;gap:6px}.loading-dots span{animation:dotPulse 1.4s ease-in-out infinite both;background:#28a745;border-radius:50%;height:8px;width:8px}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}@keyframes dotPulse{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}@media (max-width:480px){.success-modal{border-radius:16px;max-width:280px;padding:35px 25px}.success-modal:before{border-radius:16px 16px 0 0}.success-icon i{font-size:56px}.success-title{font-size:20px}.success-subtitle{font-size:13px}.loading-dots span{height:6px;width:6px}}.modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.confirm-modal{animation:slideInUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 40px #00000026;max-height:80vh;max-width:400px;overflow-y:auto;width:90%}.modal-header{border-bottom:1px solid #f0f0f0;padding:24px 24px 16px;text-align:center}.modal-icon{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#ff6b6b,#ff8e8e);border-radius:50%;display:flex;height:48px;justify-content:center;margin:0 auto 16px;width:48px}.modal-icon i{color:#fff;font-size:20px}.modal-title{color:#333;font-size:18px;font-weight:600;margin:0}.modal-content{padding:20px 24px}.confirm-info{background:#f8f9fa;border-radius:12px;margin-bottom:16px;padding:16px}.info-row{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:12px;padding:8px 0}.info-row:last-child{border-bottom:none;margin-bottom:0}.info-label{color:#666;font-size:14px;font-weight:500}.info-value{color:#333;font-size:14px;font-weight:600}.info-value.highlight{color:#ff6b6b;font-size:16px}.confirm-warning{align-items:center;background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;display:flex;margin-top:16px;padding:12px}.confirm-warning i{color:#856404;font-size:14px;margin-right:8px}.confirm-warning span{color:#856404;font-size:13px;line-height:1.4}.modal-actions{display:flex;gap:12px;padding:16px 24px 24px}.modal-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:all .3s ease}.modal-btn.cancel{background:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.modal-btn.cancel:hover{background:#e9ecef;color:#495057}.modal-btn.confirm{background:linear-gradient(135deg,#ff6b6b,#ff8e8e);box-shadow:0 4px 12px #ff6b6b4d;color:#fff}.modal-btn.confirm:hover{box-shadow:0 6px 16px #ff6b6b66;transform:translateY(-1px)}.modal-btn.confirm:active{transform:translateY(0)}.success-overlay{background:#000000b3}.success-modal{animation:scaleIn .4s ease-out;background:#fff;border-radius:20px;box-shadow:0 25px 50px #0003;max-width:380px;overflow:hidden;position:relative;text-align:center;width:90%}.success-modal:before{animation:shimmer 2s infinite;background:linear-gradient(90deg,#ff6b6b,#ff8e8e,#ff6b6b);content:"";height:4px;left:0;position:absolute;right:0;top:0}.success-icon{padding:32px 24px 16px}.success-icon i{animation:bounceIn .6s ease-out;color:#ff6b6b;font-size:64px}.success-content{padding:0 24px 24px}.success-title{animation:slideInDown .5s ease-out;color:#333;font-size:20px;font-weight:700;margin:0 0 20px}.success-info{background:#f8f9fa;border-radius:12px;margin-bottom:16px;padding:16px;text-align:left}.success-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.success-item:last-child{margin-bottom:0}.success-label{color:#666;font-size:14px;font-weight:500}.success-value{color:#333;font-size:14px;font-weight:600}.success-value.highlight{color:#ff6b6b;font-size:16px}.success-subtitle{color:#888;font-size:13px;line-height:1.4;margin:0}.success-animation{padding:16px 24px 24px}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #ff6b6bb3}70%{box-shadow:0 0 0 10px #ff6b6b00}to{box-shadow:0 0 0 0 #ff6b6b00}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@media (max-width:768px){.confirm-modal,.success-modal{margin:20px;width:95%}.modal-header{padding:20px 20px 16px}.modal-content{padding:16px 20px}.modal-actions{flex-direction:column;padding:16px 20px 20px}.modal-btn{width:100%}.success-icon i{font-size:56px}.success-title{font-size:18px}.success-content{padding:0 20px 20px}}.share-modal-overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.share-modal{animation:fadeIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-height:80vh;max-width:400px;overflow-x:hidden;overflow-y:auto;position:relative;width:90%;z-index:2001}.share-modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:16px 20px}.share-modal-header h3{color:#222;font-size:16px;font-weight:600;margin:0}.close-share-modal-btn{background:none;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:18px;padding:4px 8px;transition:all .2s ease}.close-share-modal-btn:hover{background:#f5f5f5;color:#666}.share-modal-content{padding:20px}.share-text-content{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;max-height:300px;overflow-y:auto;padding:16px}.share-text-content pre{word-wrap:break-word;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.8;margin:0;padding:0;white-space:pre-wrap}.share-modal-actions{border-top:1px solid #f0f0f0;display:flex;gap:12px;padding:16px 20px}.copy-share-btn{align-items:center;background:linear-gradient(135deg,#4ecdc4,#38b2ac);border:none;border-radius:12px;box-shadow:0 4px 12px #4ecdc44d;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 16px;transition:all .3s ease}.copy-share-btn:hover{box-shadow:0 6px 16px #4ecdc466;transform:translateY(-2px)}.copy-share-btn:active{transform:translateY(0)}.copy-share-btn i{font-size:16px}.action-buttons-section{display:flex;flex-wrap:wrap;gap:16px;gap:var(--spacing-md);justify-content:center;padding:16px;padding:var(--spacing-md)}.action-buttons-section .checkin-qr-section{display:flex;flex:2 1;justify-content:center;min-width:140px}.action-buttons-section .checkin-qr-btn{justify-content:center;width:100%}.action-buttons-section .share-section{display:flex;flex:1 1;justify-content:center;min-width:140px}.action-buttons-section .share-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#ff8a8a);border:none;border-radius:12px;box-shadow:0 4px 12px #ff6b6b4d;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:8px;justify-content:center;padding:12px 24px;transition:all .3s ease;width:100%}.action-buttons-section .share-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.action-buttons-section .share-btn:active{transform:translateY(0)}.action-buttons-section .share-btn i{font-size:16px} /*# sourceMappingURL=main.38c0b339.css.map*/