*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.navbar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:16px 32px;display:flex;box-shadow:0 2px 10px #0000001a}.navbar a{color:#fff;font-size:24px;font-weight:700;text-decoration:none}.navbar-right{align-items:center;gap:16px;display:flex}.user-avatar{background:#fff3;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.logout-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:20px;padding:6px 16px;font-size:14px}.logout-btn:hover{background:#ffffff40}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:40px;box-shadow:0 20px 60px #0003}.login-card h1{text-align:center;color:#333;margin-bottom:8px;font-size:28px}.login-card .subtitle{text-align:center;color:#666;margin-bottom:30px}.login-card input{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;margin-bottom:16px;padding:12px 16px;font-size:16px}.login-card input:focus{border-color:#667eea;outline:none}.login-card button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:16px;font-weight:700}.login-card button:hover{opacity:.9}.login-card button:disabled{opacity:.5;cursor:not-allowed}.error-message{color:#dc2626;text-align:center;background:#fee2e2;border-radius:8px;margin-bottom:16px;padding:10px;font-size:14px}.test-account{text-align:center;color:#999;margin-top:24px;font-size:12px}.test-account a{color:#667eea;text-decoration:none}.link{text-align:center;margin-top:16px}.link a{color:#667eea;font-size:14px;text-decoration:none}.link a:hover{text-decoration:underline}.main-container{max-width:1200px;margin:0 auto;padding:32px 20px}.header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.header h1{color:#333;font-size:32px}.header p{color:#666;margin-top:8px}.create-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:8px;padding:10px 24px;font-weight:700;text-decoration:none;display:inline-block}.create-btn:hover{opacity:.9;transform:scale(1.02)}.purchase-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:stretch;gap:24px;display:grid}.purchase-card{background:#fff;border-radius:12px;flex-direction:column;height:100%;min-height:380px;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 4px 12px #0000001a}.purchase-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.card-accent{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-shrink:0;height:4px}.purchase-image{background:#f3f4f6;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:180px;display:flex;overflow:hidden}.purchase-image img{object-fit:cover;width:100%;height:100%}.purchase-image .no-image{color:#9ca3af;background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:48px;display:flex}.card-content{flex-direction:column;flex:1;padding:16px;display:flex}.card-title{justify-content:space-between;align-items:flex-start;gap:8px;min-height:44px;margin-bottom:8px;font-size:16px;font-weight:600;line-height:1.3;display:flex}.card-title span{flex-shrink:0}.card-desc{color:#6b7280;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-height:36px;margin-bottom:12px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.progress-section{flex-shrink:0;margin-bottom:12px}.progress-header{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:4px;height:100%;transition:width .3s}.progress-stats{color:#666;justify-content:space-between;margin-top:4px;font-size:12px;display:flex}.price-info{color:#10b981;margin-top:2px;font-size:12px}.card-footer{color:#6b7280;flex-shrink:0;justify-content:space-between;align-items:center;min-height:32px;margin-bottom:12px;font-size:13px;display:flex}.product-link{color:#3b82f6;flex-shrink:0;margin-bottom:8px;font-size:12px;text-decoration:none;display:inline-block}.product-link:hover{text-decoration:underline}.detail-link{text-align:center;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;flex-shrink:0;margin-top:auto;padding:8px;font-size:14px;text-decoration:none;transition:opacity .2s;display:block}.detail-link:hover{opacity:.9}.detail-container{max-width:900px;margin:0 auto;padding:32px 20px}.detail-card{background:#fff;border-radius:12px;margin-bottom:24px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.detail-card .card-accent{height:4px}.detail-body{padding:28px}.detail-title{color:#333;margin-bottom:12px;font-size:28px;font-weight:700}.detail-image{border-radius:8px;width:100%;max-height:400px;margin-bottom:16px;overflow:hidden}.detail-image img{object-fit:cover;width:100%;height:auto;max-height:400px}.detail-desc{color:#666;margin-bottom:24px;line-height:1.6}.detail-product-link{color:#fff;background:#f59e0b;border-radius:8px;margin-bottom:16px;padding:8px 16px;font-weight:500;text-decoration:none;display:inline-block}.detail-product-link:hover{background:#d97706}.status-badge{border-radius:20px;align-items:center;gap:6px;margin-bottom:16px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.status-active{color:#065f46;background:#d1fae5}.status-collecting{color:#92400e;background:#fed7aa}.status-ordered{color:#1e40af;background:#dbeafe}.status-delivered{color:#6b21a5;background:#e9d5ff}.status-closed{color:#374151;background:#f3f4f6}.progress-large{margin:24px 0}.progress-large .progress-header{margin-bottom:8px}.progress-large .progress-bar{height:12px}.info-row{border-top:1px solid #eee;border-bottom:1px solid #eee;gap:32px;margin-bottom:20px;padding:20px 0;display:flex}.info-item{align-items:center;gap:10px;display:flex}.info-icon{font-size:24px}.info-label{color:#999;font-size:12px}.info-value{color:#333;font-weight:500}.action-buttons{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:10px 24px;font-weight:500}.btn-success{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:8px;padding:10px 24px;font-weight:500}.btn-secondary{color:#374151;cursor:pointer;background:#e5e7eb;border:none;border-radius:8px;padding:10px 20px;font-weight:500}.btn-secondary:hover{background:#d1d5db}.payment-form{background:#f9fafb;border-radius:8px;align-items:center;gap:12px;margin-top:20px;padding:16px;display:flex}.payment-form input{border:1px solid #ddd;border-radius:8px;flex:1;padding:10px 16px;font-size:14px}.status-controls{background:#fff;border-radius:12px;margin-bottom:24px;padding:20px;box-shadow:0 4px 12px #0000001a}.status-controls h3{color:#333;margin-bottom:16px}.status-buttons{flex-wrap:wrap;gap:8px;display:flex}.chat-container{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.chat-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:16px 20px;font-size:18px;font-weight:700}.chat-messages{background:#f9fafb;height:400px;padding:20px;overflow-y:auto}.message{gap:10px;margin-bottom:16px;display:flex}.message-own{justify-content:flex-end}.message-own .message-bubble{color:#fff;background:#667eea;border-bottom-right-radius:4px}.message-other .message-bubble{color:#333;background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a}.message-bubble{border-radius:18px;max-width:70%;padding:10px 16px}.message-name{margin-bottom:4px;font-size:12px;font-weight:700}.message-time{opacity:.7;margin-top:4px;font-size:10px}.chat-input-form{border-top:1px solid #eee;gap:12px;padding:16px;display:flex}.chat-input-form input{border:1px solid #ddd;border-radius:24px;flex:1;padding:12px 16px;font-size:14px}.chat-input-form input:focus{border-color:#667eea;outline:none}.chat-input-form button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:24px;padding:10px 24px;font-weight:500}.create-container{max-width:600px;margin:0 auto;padding:32px 20px}.create-card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 4px 12px #0000001a}.create-card h1{text-align:center;color:#333;margin-bottom:8px}.create-card .subtitle{text-align:center;color:#666;margin-bottom:28px}.create-card input,.create-card textarea{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;margin-bottom:16px;padding:12px 16px;font-family:inherit;font-size:16px}.create-card textarea{resize:vertical;min-height:100px}.create-card input:focus,.create-card textarea:focus{border-color:#667eea;outline:none}.create-card label{color:#333;margin-bottom:6px;font-weight:500;display:block}.create-card button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:16px;font-weight:700}.loading{justify-content:center;align-items:center;height:300px;display:flex}.spinner{border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:#999;padding:60px 20px}.empty-state .emoji{margin-bottom:16px;font-size:48px;display:block}.toast-container{z-index:1000;position:fixed;top:80px;right:20px}.toast{background:#fff;border-left:4px solid;border-radius:12px;align-items:center;gap:12px;min-width:250px;margin-bottom:10px;padding:12px 20px;animation:.3s slideIn;display:flex;box-shadow:0 4px 12px #00000026}.toast-success{border-left-color:#10b981}.toast-error{border-left-color:#ef4444}.toast-info{border-left-color:#3b82f6}.toast-warning{border-left-color:#f59e0b}.toast-icon{font-size:20px}.toast-content{flex:1}.toast-title{margin-bottom:4px;font-weight:700}.toast-message{color:#666;font-size:13px}.toast-close{cursor:pointer;color:#999;background:0 0;border:none;font-size:18px}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0%)}}@keyframes slideOut{0%{opacity:1;transform:translate(0%)}to{opacity:0;transform:translate(100%)}}.toast-exit{animation:.3s forwards slideOut}.deadline-timer{color:#92400e;background:#fef3c7;border-radius:8px;flex-shrink:0;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.deadline-timer.urgent{color:#dc2626;background:#fee2e2;animation:1s infinite pulse}.deadline-timer.expired{color:#6b7280;background:#f3f4f6}.timer-icon{font-size:16px}.timer-text{flex:1}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.notification-buttons{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.btn-notification{color:#fff;cursor:pointer;background:#f59e0b;border:none;border-radius:8px;padding:10px 20px;font-weight:500}.btn-subscribe{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:8px;padding:10px 20px;font-weight:500}.btn-unsubscribe{color:#fff;cursor:pointer;background:#6b7280;border:none;border-radius:8px;padding:10px 20px;font-weight:500}.btn-notification:hover,.btn-subscribe:hover,.btn-unsubscribe:hover{opacity:.9;transform:scale(1.02)}.avatar-img{object-fit:cover;border-radius:50%}.avatar-placeholder{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.status-badge-small{border-radius:12px;padding:2px 8px;font-size:11px;font-weight:500}.status-badge-small.status-active{color:#065f46;background:#d1fae5}.status-badge-small.status-collecting{color:#92400e;background:#fed7aa}.status-badge-small.status-ordered{color:#1e40af;background:#dbeafe}.status-badge-small.status-delivered{color:#6b21a5;background:#e9d5ff}.status-badge-small.status-closed{color:#374151;background:#f3f4f6}body.dark-theme{color:#eee;background:#1a1a2e}body.dark-theme .navbar{background:linear-gradient(135deg,#1e1e2f 0%,#2d2d44 100%)}body.dark-theme .login-card,body.dark-theme .purchase-card,body.dark-theme .detail-card,body.dark-theme .status-controls,body.dark-theme .chat-container,body.dark-theme .create-card{color:#eee;background:#16213e;box-shadow:0 4px 12px #0000004d}body.dark-theme .card-title,body.dark-theme .detail-title,body.dark-theme h1,body.dark-theme h2,body.dark-theme h3{color:#eee}body.dark-theme .card-desc,body.dark-theme .detail-desc,body.dark-theme .subtitle{color:#aaa}body.dark-theme .progress-header,body.dark-theme .progress-stats,body.dark-theme .card-footer{color:#ccc}body.dark-theme .progress-bar{background:#2d2d44}body.dark-theme .create-card input,body.dark-theme .create-card textarea,body.dark-theme .chat-input-form input,body.dark-theme .payment-form input{color:#eee;background:#2d2d44;border-color:#444}body.dark-theme .create-card input:focus,body.dark-theme .create-card textarea:focus,body.dark-theme .chat-input-form input:focus,body.dark-theme .payment-form input:focus{border-color:#667eea;outline:none}body.dark-theme .btn-secondary{color:#eee;background:#2d2d44}body.dark-theme .btn-secondary:hover{background:#3d3d5c}body.dark-theme .chat-messages{background:#0f0f1a}body.dark-theme .message-other .message-bubble{color:#eee;background:#2d2d44}body.dark-theme .toast{color:#eee;background:#16213e}body.dark-theme .toast-title{color:#eee}body.dark-theme .toast-message{color:#ccc}body.dark-theme .status-active{color:#a7f3d0;background:#064e3b}body.dark-theme .status-collecting{color:#fed7aa;background:#92400e}body.dark-theme .status-ordered{color:#bfdbfe;background:#1e3a8a}body.dark-theme .status-delivered{color:#e9d5ff;background:#4c1d95}body.dark-theme .status-closed{color:#d1d5db;background:#374151}body.dark-theme .purchase-card:hover{box-shadow:0 8px 24px #0006}body.dark-theme .detail-card{background:#16213e}body.dark-theme .info-row{border-color:#2d2d44}body.dark-theme .payment-form{background:#0f0f1a}body.dark-theme .deadline-timer{color:#fbbf24;background:#2d2d44}body.dark-theme .deadline-timer.urgent{color:#fca5a5;background:#7f1d1d}body.dark-theme .deadline-timer.expired{color:#9ca3af;background:#374151}body.dark-theme .profile-header,body.dark-theme .purchase-item,body.dark-theme .payments-table,body.dark-theme .profile-stats .stat-card,body.dark-theme .stat-card,body.dark-theme .chart-card,body.dark-theme .top-purchases-table{background:#16213e}body.dark-theme .profile-info p,body.dark-theme .stat-label,body.dark-theme .stat-info p,body.dark-theme .top-purchases-table td{color:#ccc}body.dark-theme .purchase-title,body.dark-theme .profile-info h1{color:#eee}body.dark-theme .payments-table th,body.dark-theme .top-purchases-table th{color:#eee;background:#1e2a3e}body.dark-theme .payments-table td,body.dark-theme .top-purchases-table td{border-bottom-color:#2d2d44}body.dark-theme .form-group label{color:#cbd5e1}body.dark-theme .btn-cancel-profile{color:#cbd5e1;background:#334155}body.dark-theme .btn-cancel-profile:hover{background:#475569}body.dark-theme .tab-btn{color:#94a3b8}body.dark-theme .tab-btn.active{color:#a78bfa;border-bottom-color:#a78bfa}.dashboard-container{max-width:1200px;margin:0 auto;padding:24px}.dashboard-header{margin-bottom:32px}.dashboard-header h1{margin-bottom:8px;font-size:32px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px;display:grid}.stat-card{background:#fff;border-radius:16px;align-items:center;gap:16px;padding:20px;transition:transform .2s;display:flex;box-shadow:0 4px 12px #0000001a}.stat-card:hover{transform:translateY(-4px)}.stat-icon{font-size:40px}.stat-info h3{margin:0;font-size:28px}.stat-info p{color:#666;margin:4px 0 0;font-size:14px}.stat-info small{color:#10b981;font-size:12px}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;margin-bottom:32px;display:grid}.chart-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 12px #0000001a}.chart-card h3{text-align:center;margin-bottom:20px}.pie-chart-container{max-width:300px;margin:0 auto}.bar-chart-container{height:300px}.top-purchases-table{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 12px #0000001a}.top-purchases-table h3{margin-bottom:20px}.table-wrapper{overflow-x:auto}.top-purchases-table table{border-collapse:collapse;width:100%}.top-purchases-table th,.top-purchases-table td{text-align:left;border-bottom:1px solid #eee;padding:12px}.top-purchases-table th{background:#f8f9fa;font-weight:600}.progress-cell{align-items:center;gap:8px;min-width:120px;display:flex}.profile-container{max-width:1000px;margin:0 auto;padding:24px}.profile-header{background:#fff;border-radius:24px;align-items:center;gap:40px;margin-bottom:32px;padding:32px;display:flex;box-shadow:0 4px 20px #00000014}.profile-avatar-section{flex-direction:column;align-items:center;gap:12px;display:flex}.profile-avatar-wrapper{width:120px;height:120px;position:relative}.profile-avatar-img{object-fit:cover;border:4px solid #667eea;border-radius:50%;width:120px;height:120px;box-shadow:0 4px 15px #00000026}.profile-avatar-placeholder{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:4px solid #667eea;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;font-size:48px;font-weight:700;display:flex;box-shadow:0 4px 15px #00000026}.avatar-upload-btn{cursor:pointer;background:#667eea;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;bottom:5px;right:5px;box-shadow:0 2px 8px #0003}.avatar-upload-btn:hover{background:#5a67d8;transform:scale(1.05)}.camera-icon{color:#fff;font-size:18px}.avatar-actions{gap:8px;margin-top:8px;display:flex}.avatar-save-btn{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:20px;padding:6px 12px;font-size:12px;transition:all .2s}.avatar-save-btn:hover{background:#059669}.avatar-cancel-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:20px;padding:6px 12px;font-size:12px;transition:all .2s}.avatar-cancel-btn:hover{background:#dc2626}.profile-info{flex:1}.profile-info h1{color:#1f2937;margin:0 0 8px;font-size:32px}.profile-info p{color:#6b7280;margin:4px 0}.profile-role{background:#e8f5e9;border-radius:20px;margin-top:8px;padding:4px 12px;font-size:13px;display:inline-block}.btn-edit-profile{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:30px;margin-top:16px;padding:8px 20px;font-size:14px;transition:all .2s}.btn-edit-profile:hover{background:#5a67d8;transform:scale(1.02)}.profile-edit-form{margin-top:8px}.form-group{margin-bottom:16px}.form-group label{color:#374151;margin-bottom:6px;font-weight:500;display:block}.form-group input{border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.edit-actions{gap:12px;margin-top:20px;display:flex}.btn-save-profile{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:30px;padding:8px 20px;font-size:14px;transition:all .2s}.btn-save-profile:hover{background:#059669}.btn-cancel-profile{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:30px;padding:8px 20px;font-size:14px;transition:all .2s}.btn-cancel-profile:hover{background:#e5e7eb}.profile-stats{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px;display:grid}.profile-stats .stat-card{text-align:center;background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 12px #0000000d}.profile-stats .stat-value{color:#667eea;font-size:36px;font-weight:700}.profile-stats .stat-label{color:#6b7280;margin-top:8px;font-size:14px}.profile-tabs{border-bottom:1px solid #e5e7eb;gap:8px;margin-bottom:24px;display:flex}.tab-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:30px 30px 0 0;padding:12px 24px;font-size:15px;transition:all .2s}.tab-btn.active{color:#667eea;border-bottom:2px solid #667eea;font-weight:500}.tab-btn:hover{color:#667eea;background:#667eea0d}.purchases-list{flex-direction:column;gap:12px;display:flex}.purchase-item{background:#fff;border-radius:12px;padding:16px;transition:transform .2s;box-shadow:0 2px 8px #0000000d}.purchase-item:hover{transform:translate(4px)}.purchase-link{color:inherit;text-decoration:none;display:block}.purchase-title{color:#333;margin-bottom:12px;font-size:18px;font-weight:600}.purchase-progress{align-items:center;gap:12px;margin-bottom:12px;display:flex}.progress-bar-small{background:#e5e7eb;border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill-small{background:#667eea;border-radius:3px;height:100%}.purchase-meta{color:#666;justify-content:space-between;font-size:13px;display:flex}.organizer-item{border-left:4px solid #f59e0b}.payments-table{background:#fff;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 2px 8px #0000000d}.payments-table th,.payments-table td{text-align:left;border-bottom:1px solid #e5e7eb;padding:12px 16px}.payments-table th{background:#f8f9fa;font-weight:600}.status-success{color:#10b981}
