.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);animation:fadeIn .2s ease}@media (min-width: 640px){.auth-modal-overlay{align-items:center}}.auth-modal{background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:400px;padding:var(--space-8);position:relative;animation:slideUp .3s ease}@media (min-width: 640px){.auth-modal{border-radius:var(--radius-xl)}}.auth-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-muted);transition:all var(--transition-fast)}.auth-modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.auth-modal-title{font-size:var(--font-xl);font-weight:600;margin-bottom:var(--space-2)}.auth-modal-subtitle{color:var(--text-secondary);margin-bottom:var(--space-6)}.auth-error{background:#fee2e2;color:#dc2626;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);margin-bottom:var(--space-4)}.auth-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);background:var(--bg-secondary);padding:var(--space-1);border-radius:var(--radius-lg)}.auth-tab{flex:1;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.auth-tab:hover{color:var(--text-primary)}.auth-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-input{width:100%;padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-lg);font-size:var(--font-base);color:var(--text-primary);transition:all var(--transition-fast)}.auth-input:focus{background:var(--bg-card);box-shadow:0 0 0 2px var(--accent-primary)}.auth-input::placeholder{color:var(--text-muted)}.auth-otp{text-align:center;font-size:var(--font-2xl);letter-spacing:.5em;font-weight:600}.auth-hint{font-size:var(--font-sm);color:var(--text-secondary);text-align:center}.auth-button{width:100%;padding:var(--space-4);background:var(--accent-primary);color:#fff;border-radius:var(--radius-lg);font-size:var(--font-base);font-weight:600;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.auth-button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-google{background:#fff;color:var(--text-primary);border:1px solid var(--border-color)}.auth-google:hover:not(:disabled){background:var(--bg-secondary);transform:translateY(-1px)}.auth-metamask{background:#f6851b}.auth-metamask:hover:not(:disabled){background:#e2761b}.auth-link{font-size:var(--font-sm);color:var(--accent-primary);text-align:center}.auth-link:hover{text-decoration:underline}.auth-social,.auth-options{display:flex;flex-direction:column;gap:var(--space-3)}.auth-option-btn{width:100%;padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-base);font-weight:500;display:flex;align-items:center;justify-content:center;gap:var(--space-3);transition:all var(--transition-fast)}.auth-option-btn:hover:not(:disabled){transform:translateY(-1px)}.auth-option-btn:disabled{opacity:.6;cursor:not-allowed}.auth-option-phone{background:var(--bg-tertiary, #374151);color:var(--text-primary);border:1px solid var(--border-color)}.auth-option-phone:hover:not(:disabled){background:var(--bg-secondary)}.auth-option-google{background:#fff;color:#1f2937;border:1px solid var(--border-color)}.auth-option-google:hover:not(:disabled){background:#f9fafb}.auth-option-metamask{background:var(--bg-tertiary, #374151);color:var(--text-primary);border:1px solid var(--border-color)}.auth-option-metamask:hover:not(:disabled){background:var(--bg-secondary)}.layout{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:50;background:var(--bg-card);border-bottom:1px solid var(--border-light);height:var(--header-height)}.header-content{max-width:800px;margin:0 auto;padding:0 var(--space-4);height:100%;display:flex;align-items:center;justify-content:space-between}@media (min-width: 768px){.header-content{padding:0 var(--space-6)}}.logo{display:flex;align-items:center;gap:var(--space-2)}.logo-text{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-skeleton{width:100px;height:40px;border-radius:var(--radius-lg);background:var(--skeleton-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-sm);font-weight:500;transition:all var(--transition-fast);min-height:40px}.btn-primary{background:var(--text-primary);color:var(--text-inverted)}.btn-primary:hover{background:#333;transform:translateY(-1px)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-tertiary)}.user-menu-wrapper{position:relative}.user-pill{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);background:var(--bg-secondary);border-radius:var(--radius-full);transition:all var(--transition-fast)}.user-pill:hover{background:var(--bg-tertiary)}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover}.user-avatar-placeholder{width:32px;height:32px;border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:600}.user-name{font-size:var(--font-sm);font-weight:500;color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{color:var(--text-muted)}.user-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.user-menu{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:200px;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;animation:slideUp .15s ease}.user-menu-header{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.user-menu-name{font-weight:600;color:var(--text-primary)}.user-menu-type{font-size:var(--font-xs);color:var(--text-muted);text-transform:capitalize}.user-menu-divider{height:1px;background:var(--border-light)}.user-menu-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--font-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.user-menu-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.user-menu-section-label{padding:var(--space-2) var(--space-4);font-size:var(--font-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.main{flex:1;max-width:800px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-4)}@media (min-width: 768px){.main{padding:var(--space-8) var(--space-6)}}.group-avatar-wrapper{position:relative;flex-shrink:0}.group-avatar-img,.group-avatar-placeholder{width:100%;height:100%;border-radius:var(--radius-lg);object-fit:cover}.group-avatar-placeholder{display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;text-transform:uppercase}.group-avatar-sm{width:40px;height:40px}.group-avatar-sm .group-avatar-placeholder{font-size:var(--font-base)}.group-avatar-md{width:56px;height:56px}.group-avatar-md .group-avatar-placeholder{font-size:var(--font-xl)}.group-avatar-lg{width:72px;height:72px}.group-avatar-lg .group-avatar-placeholder{font-size:var(--font-2xl)}.group-avatar-edit{position:absolute;top:-4px;right:-4px;width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-card);border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-muted);opacity:0;transition:all var(--transition-fast);cursor:pointer}.group-avatar-wrapper.editable:hover .group-avatar-edit{opacity:1}.group-avatar-edit:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--text-primary)}.inline-editable-wrapper{display:block;position:relative;width:100%}.inline-editable-display{cursor:text;transition:all var(--transition-fast);display:block}.inline-editable-display:hover{text-decoration:underline;text-decoration-style:dashed;text-decoration-color:var(--text-muted);text-underline-offset:2px}.inline-editable-placeholder{color:var(--text-muted);font-style:italic}.inline-editable-input{font:inherit;color:inherit;background:transparent;border:none;border-bottom:1.5px solid var(--accent-primary);border-radius:0;padding:0 0 2px;width:100%;outline:none;display:block}.inline-editable-textarea{resize:none;min-height:1.5em;line-height:inherit;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;display:block}.inline-editable-status{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-xs);font-weight:500;white-space:nowrap;animation:fadeIn .2s ease;margin-left:var(--space-2);vertical-align:middle}.inline-editable-status.saving{color:var(--text-muted)}.inline-editable-status.saved{color:var(--success)}.status-saving{opacity:.7}@keyframes fadeIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.avatar-upload-modal{max-width:400px}.avatar-drop-zone{margin-bottom:var(--space-5);border:2px dashed var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast);cursor:pointer;overflow:hidden}.avatar-drop-zone:not(.has-image):hover,.avatar-drop-zone.drag-over{border-color:var(--accent-primary);background:var(--accent-light)}.avatar-drop-zone.has-image{cursor:default;border-style:solid}.drop-zone-content{padding:var(--space-10) var(--space-6);text-align:center}.drop-zone-icon{color:var(--text-muted);margin-bottom:var(--space-4)}.drop-zone-text{color:var(--text-secondary);line-height:1.6}.drop-zone-text span{color:var(--accent-primary);font-weight:500}.avatar-preview-container{display:flex;flex-direction:column;align-items:center;padding:var(--space-5);gap:var(--space-4)}.avatar-preview{width:200px;height:200px;border-radius:var(--radius-full);overflow:hidden;position:relative;background:var(--bg-secondary)}.avatar-preview-img{position:absolute;top:50%;left:50%;transform-origin:center center;min-width:100%;min-height:100%;object-fit:cover;-webkit-user-select:none;user-select:none}.avatar-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-full);box-shadow:inset 0 0 0 3px #ffffff4d;pointer-events:none}.zoom-controls{display:flex;align-items:center;gap:var(--space-3);width:100%;max-width:250px;color:var(--text-muted)}.zoom-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--border-color);border-radius:2px;outline:none}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer;transition:transform var(--transition-fast)}.zoom-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.zoom-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:none}.change-image-btn{font-size:var(--font-xs)}.btn-sm{padding:var(--space-1) var(--space-3);min-height:32px;font-size:var(--font-xs)}.group-header-component{display:flex;align-items:flex-start;gap:var(--space-4)}.group-header-avatar-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex-shrink:0}.group-header-member-count{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--text-muted);font-weight:500}.group-header-text{flex:1;min-width:0;max-width:280px}.group-header-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1) 0;line-height:1.3}.group-header-desc{font-size:.7rem;color:var(--text-secondary);margin:0;line-height:1.5;white-space:normal;word-break:break-word;display:block}.group-header-badge{display:inline-block;margin-top:var(--space-2);font-size:.65rem;font-weight:500;padding:2px 6px;background:var(--bg-secondary);color:var(--text-muted);border-radius:var(--radius-sm)}.group-header-sm{gap:var(--space-3)}.group-header-sm .group-header-text{max-width:200px}.group-header-sm .group-header-title{font-size:.95rem}.group-header-sm .group-header-desc,.group-header-sm .group-header-member-count{font-size:.6rem}.group-header-md .group-header-text{max-width:240px}.group-header-md .group-header-title{font-size:1rem}.group-header-md .group-header-desc{font-size:.65rem}.dashboard{max-width:900px;margin:0 auto}.dashboard-section{margin-bottom:var(--space-10)}.dashboard-section:last-child{margin-bottom:0}.welcome-hero{text-align:center;padding:var(--space-16) var(--space-4)}.welcome-hero h1{font-size:2.5rem;font-weight:700;margin-bottom:var(--space-4)}.hero-subtitle{font-size:var(--font-lg);color:var(--text-secondary);margin-bottom:var(--space-8)}.btn-xl{padding:var(--space-4) var(--space-8);font-size:var(--font-lg)}.auth-buttons{display:flex;flex-direction:column;gap:var(--space-3);max-width:320px;margin:0 auto}.auth-btn{width:100%;padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-base);font-weight:500;display:flex;align-items:center;justify-content:center;gap:var(--space-3);transition:all var(--transition-fast)}.auth-btn:hover{transform:translateY(-1px)}.auth-btn-phone{background:var(--bg-tertiary, #374151);color:var(--text-primary);border:1px solid var(--border-color)}.auth-btn-phone:hover{background:var(--bg-secondary)}.auth-btn-google{background:#fff;color:#1f2937;border:1px solid var(--border-color)}.auth-btn-google:hover{background:#f9fafb}.auth-btn-metamask{background:var(--bg-tertiary, #374151);color:var(--text-primary);border:1px solid var(--border-color)}.auth-btn-metamask:hover{background:var(--bg-secondary)}.dashboard-header{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-8)}@media (min-width: 640px){.dashboard-header{flex-direction:row;align-items:center;justify-content:space-between}}.dashboard-header h1,.dashboard-header h2{font-size:var(--font-2xl);margin-bottom:var(--space-1)}.dashboard-header h2{font-size:var(--font-xl)}.dashboard-header p{color:var(--text-secondary)}.btn-lg{padding:var(--space-3) var(--space-5);font-size:var(--font-base)}.sort-tab{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.see-more-container{display:flex;justify-content:center;margin-top:var(--space-5)}.see-more-btn{padding:var(--space-2) var(--space-6)}.groups-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width: 640px){.groups-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.groups-grid{grid-template-columns:repeat(3,1fr)}}.group-card{display:block;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--transition-fast)}.group-card:hover{border-color:var(--border-color);box-shadow:var(--shadow-md);transform:translateY(-2px)}.skeleton-card{pointer-events:none}.skeleton-title{width:60%;height:24px;margin-bottom:var(--space-3)}.skeleton-desc{width:100%;height:16px;margin-bottom:var(--space-2)}.skeleton-meta{width:40%;height:14px;margin-top:var(--space-4)}.empty-state{text-align:center;padding:var(--space-12) var(--space-4)}.empty-icon{width:80px;height:80px;margin:0 auto var(--space-6);display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-full);color:var(--text-muted)}.empty-state h2{font-size:var(--font-xl);margin-bottom:var(--space-2)}.empty-state p{color:var(--text-secondary);margin-bottom:var(--space-6);max-width:300px;margin-left:auto;margin-right:auto}.empty-state-sm{padding:var(--space-8) var(--space-4)}.empty-state-sm .empty-icon{width:64px;height:64px;margin-bottom:var(--space-4)}.empty-state-sm h3{font-size:var(--font-lg);margin-bottom:var(--space-2)}.empty-state-sm p{margin-bottom:var(--space-4)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);animation:fadeIn .2s ease}@media (min-width: 640px){.modal-overlay{align-items:center}}.modal{background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;padding:var(--space-6);animation:slideUp .3s ease}@media (min-width: 640px){.modal{border-radius:var(--radius-xl)}}.modal-title{font-size:var(--font-xl);margin-bottom:var(--space-6)}.error-message{background:#fee2e2;color:#dc2626;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);margin-bottom:var(--space-4)}.form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group label{display:block;font-size:var(--font-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2)}.form-group input,.form-group textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-base);color:var(--text-primary);border:2px solid transparent;transition:all var(--transition-fast)}.form-group input:focus,.form-group textarea:focus{background:var(--bg-card);border-color:var(--accent-primary)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group textarea{resize:vertical;min-height:80px}.radio-group{display:flex;gap:var(--space-3)}.radio-option{flex:1;padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent}.radio-option:hover{background:var(--bg-tertiary)}.radio-option.selected{background:var(--accent-light);border-color:var(--accent-primary)}.radio-option input{display:none}.radio-content{display:flex;flex-direction:column;gap:var(--space-1)}.radio-title{font-weight:500;color:var(--text-primary)}.radio-desc{font-size:var(--font-xs);color:var(--text-muted)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-2)}.modal-lg{max-width:640px}.rich-editor{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);overflow:hidden}.editor-toolbar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);background:var(--bg-card)}.toolbar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer}.toolbar-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.toolbar-btn.active{background:var(--accent-light);color:var(--accent-primary)}.toolbar-divider{width:1px;height:20px;background:var(--border-light);margin:0 var(--space-2)}.toolbar-spinner{width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toolbar-youtube-wrapper{position:relative}.youtube-input-popup{position:absolute;top:100%;left:0;margin-top:var(--space-2);display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10}.youtube-input-popup input{width:240px;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary)}.youtube-input-popup input:focus{background:var(--bg-card);box-shadow:0 0 0 2px var(--accent-primary)}.youtube-input-popup button{padding:var(--space-2) var(--space-3);background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:500}.youtube-input-popup button:hover{background:var(--accent-hover)}.rich-editor-content{min-height:150px;max-height:400px;overflow-y:auto;padding:var(--space-4);color:var(--text-primary);font-size:var(--font-base);line-height:1.6}.rich-editor-content:focus{outline:none}.rich-editor-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none;float:left;height:0}.rich-editor-content p{margin-bottom:var(--space-3)}.rich-editor-content ul,.rich-editor-content ol{padding-left:var(--space-6);margin-bottom:var(--space-3)}.rich-editor-content li{margin-bottom:var(--space-1)}.rich-editor-content .editor-image{display:inline-block;max-height:150px;width:auto;max-width:100%;margin:var(--space-2) var(--space-2) var(--space-2) 0;border-radius:var(--radius-md);vertical-align:bottom}.rich-editor-content .editor-youtube{display:block;height:150px;aspect-ratio:16 / 9;margin:var(--space-4) 0;border-radius:var(--radius-md);overflow:hidden}.rich-editor-content .editor-youtube iframe{width:100%;height:100%;border:none}.editor-hint{padding:var(--space-2) var(--space-3);font-size:var(--font-xs);color:var(--text-muted);border-top:1px solid var(--border-light);background:var(--bg-card)}.content-renderer{font-size:var(--font-base);line-height:1.4;color:var(--text-primary)}.content-renderer--preview{font-size:var(--font-sm)}.content-paragraph{margin-bottom:var(--space-1)}.content-paragraph:last-child{margin-bottom:0}.content-heading{font-weight:600;margin-bottom:var(--space-1)}.content-list{padding-left:var(--space-6);margin-bottom:var(--space-1)}.content-list li{margin-bottom:0}.content-renderer a{color:var(--accent-primary);text-decoration:underline}.content-image-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-1)}.content-image-btn{flex-shrink:0;height:var(--media-height, 150px);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.content-image-btn:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.content-image{height:100%;width:auto;max-width:100%;object-fit:cover;display:block}.content-youtube-row{margin-bottom:var(--space-1)}.content-youtube-btn{position:relative;height:var(--media-height, 150px);aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.content-youtube-btn:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.content-youtube-thumb{width:100%;height:100%;object-fit:cover}.content-youtube-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000004d;transition:background var(--transition-fast)}.content-youtube-btn:hover .content-youtube-play{background:#00000080}.content-youtube-play svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.media-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4);animation:fadeIn .2s ease}.media-modal{position:relative;max-width:90vw;max-height:90vh}.media-modal-close{position:absolute;top:-40px;right:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;border-radius:var(--radius-full);transition:background var(--transition-fast)}.media-modal-close:hover{background:#ffffff1a}.media-modal-image{max-width:90vw;max-height:85vh;border-radius:var(--radius-lg);object-fit:contain}.media-modal-video{width:80vw;max-width:960px;aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden}.media-modal-video iframe{width:100%;height:100%;border:none}.group-page{max-width:800px;margin:0 auto}.group-header{display:flex;flex-direction:column;gap:var(--space-5);margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-light)}@media (min-width: 640px){.group-header{flex-direction:row;align-items:flex-start;gap:var(--space-5)}}.private-badge{padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-xs)}.group-actions{flex-shrink:0;align-self:flex-start}.group-actions .btn{height:40px;padding:var(--space-2) var(--space-4);font-size:var(--font-sm)}.group-actions .btn svg{width:16px;height:16px}@media (min-width: 640px){.group-actions{margin-left:auto}}.btn-problem{background:var(--problem-primary);color:#fff}.btn-problem:hover{background:#ff5252;transform:translateY(-1px)}.skeleton-header{padding-bottom:var(--space-6);border-bottom:1px solid var(--border-light)}.skeleton-title-lg{width:200px;height:32px;margin-bottom:var(--space-3)}.skeleton-desc-lg{width:300px;height:20px}.sort-bar{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}@media (min-width: 640px){.sort-bar{flex-direction:row;align-items:center;justify-content:space-between}}.sort-tabs{display:flex;gap:var(--space-1);background:var(--bg-secondary);padding:var(--space-1);border-radius:var(--radius-lg)}.sort-tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.sort-tab:hover{color:var(--text-primary)}.sort-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.period-tabs{display:flex;gap:var(--space-1)}.period-tab{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:500;color:var(--text-muted);transition:all var(--transition-fast)}.period-tab:hover{color:var(--text-primary)}.period-tab.active{background:var(--text-primary);color:var(--text-inverted)}.problems-list{display:flex;flex-direction:column;gap:var(--space-4)}.problem-card{display:flex;background:var(--problem-bg);border:1px solid var(--border-light);border-left:4px solid var(--problem-primary);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-fast)}.problem-card:hover{border-color:var(--problem-border);box-shadow:var(--shadow-md)}.problem-main{flex:1;padding:var(--space-4);min-width:0}.problem-sidebar{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:var(--space-4);min-width:70px}.problem-author{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.author-avatar{width:20px;height:20px;border-radius:var(--radius-full);object-fit:cover}.author-avatar-placeholder{width:20px;height:20px;border-radius:var(--radius-full);background:var(--problem-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600}.problem-author span{font-size:.7rem;color:var(--text-muted)}.problem-title{font-size:var(--font-base);font-weight:600;color:var(--text-primary);line-height:1.4;margin-bottom:var(--space-2)}.problem-preview{color:var(--text-secondary);overflow:hidden;max-height:100px;font-size:var(--font-sm);position:relative}.problem-preview-expanded{max-height:none;overflow:visible}.see-more-link{display:inline-block;margin-top:var(--space-2);padding:0;background:none;border:none;font-size:var(--font-sm);font-weight:500;color:var(--accent-primary);cursor:pointer;transition:color var(--transition-fast)}.see-more-link:hover{color:var(--text-primary);text-decoration:underline}.solution-count{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--text-muted)}.vote-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2);background:transparent;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:.75rem;font-weight:600;color:var(--text-muted);transition:all var(--transition-fast);min-width:44px;margin-top:calc(20px + var(--space-2))}.vote-btn:hover{border-color:var(--problem-primary);color:var(--problem-primary)}.vote-btn.voted{background:var(--problem-primary);border-color:var(--problem-primary);color:#fff}.vote-btn.voted:hover{background:#ff5252;border-color:#ff5252}.vote-btn:disabled{opacity:.6;cursor:not-allowed}.top-solution{padding:var(--space-5);background:var(--solution-bg);border-left:4px solid var(--solution-primary);min-width:200px}@media (min-width: 640px){.top-solution{max-width:280px}}.top-solution-badge{font-size:var(--font-xs);font-weight:600;color:var(--solution-text);margin-bottom:var(--space-2)}.top-solution-title{font-size:var(--font-sm);color:var(--text-primary);line-height:1.4;margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.top-solution-votes{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-xs);font-weight:600;color:var(--solution-primary)}.empty-problems{text-align:center;padding:var(--space-12) var(--space-4)}.empty-problems .empty-icon{width:80px;height:80px;margin:0 auto var(--space-4);display:flex;align-items:center;justify-content:center;background:var(--problem-bg);border-radius:var(--radius-full);color:var(--problem-primary)}.empty-problems h3{font-size:var(--font-lg);margin-bottom:var(--space-2)}.empty-problems p{color:var(--text-secondary);margin-bottom:var(--space-6)}.problem-page{max-width:700px;margin:0 auto}.problem-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.problem-nav-group{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);text-decoration:none;transition:all var(--transition-fast);max-width:50%}.problem-nav-group:hover{background:var(--bg-tertiary);border-color:var(--border-color)}.problem-nav-group>svg{flex-shrink:0;color:var(--text-muted)}.problem-nav-bar .btn{height:40px;flex-shrink:0}.problem-detail{background:var(--problem-bg);border:1px solid var(--problem-border);border-left:4px solid var(--problem-primary);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-8)}.problem-detail-header{display:flex;gap:var(--space-5);align-items:flex-start}.problem-detail-content{flex:1}.problem-detail h1{font-size:var(--font-2xl);color:var(--text-primary);margin-bottom:var(--space-4);line-height:1.3}.problem-detail-author{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:var(--space-3)}.problem-detail-body{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-light)}.author-avatar-lg{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover}.author-avatar-placeholder.author-avatar-lg{width:32px;height:32px;background:var(--problem-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:600}.vote-btn-lg{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:transparent;border:2px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast);min-width:64px;color:var(--text-muted)}.vote-btn-lg:hover{border-color:var(--problem-primary);color:var(--problem-primary)}.vote-btn-lg.voted{background:var(--problem-primary);border-color:var(--problem-primary);color:#fff}.vote-btn-lg.voted:hover{background:#ff5252;border-color:#ff5252}.vote-btn-lg span{font-size:var(--font-lg);font-weight:700}.skeleton-problem{min-height:120px}.skeleton-title-xl{width:80%;height:32px;margin-bottom:var(--space-4)}.skeleton-text{width:40%;height:20px}.solutions-section{margin-top:var(--space-8)}.solutions-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.solutions-header h2{font-size:var(--font-xl)}.solutions-section .sort-tabs{display:flex;gap:var(--space-1);background:var(--bg-secondary);padding:var(--space-1);border-radius:var(--radius-lg)}.solutions-section .sort-tab{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.solutions-section .sort-tab:hover{color:var(--text-primary)}.solutions-section .sort-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.solutions-add-more{display:flex;justify-content:center;margin-top:var(--space-5)}.btn-solution{background:var(--solution-primary);color:#fff}.btn-solution:hover{background:#27ae60;transform:translateY(-1px)}.solutions-list{display:flex;flex-direction:column;gap:var(--space-3)}.solution-card{display:flex;background:var(--solution-bg);border:1px solid var(--border-light);border-left:4px solid var(--solution-primary);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-fast)}.solution-card:hover{border-color:var(--solution-border);box-shadow:var(--shadow-md)}.solution-main{flex:1;padding:var(--space-4);min-width:0}.solution-sidebar{display:flex;flex-direction:column;align-items:flex-end;padding:var(--space-4);min-width:70px}.solution-author{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.solution-author span{font-size:.7rem;color:var(--text-muted)}.solution-title{font-size:var(--font-base);font-weight:600;color:var(--text-primary);line-height:1.4;margin-bottom:var(--space-2)}.solution-preview{color:var(--text-secondary);overflow:hidden;max-height:150px;font-size:var(--font-sm)}.solution-avatar{background:var(--solution-primary)!important}.solution-card .vote-btn{border-color:var(--border-color)}.solution-card .vote-btn:hover{border-color:var(--solution-primary);color:var(--solution-primary)}.solution-card .vote-btn.voted{background:var(--solution-primary);border-color:var(--solution-primary);color:#fff}.solution-card .vote-btn.voted:hover{background:#27ae60;border-color:#27ae60}.empty-solutions{text-align:center;padding:var(--space-10) var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-lg)}.empty-solutions .empty-icon{width:64px;height:64px;margin:0 auto var(--space-4);display:flex;align-items:center;justify-content:center;background:var(--solution-bg);border-radius:var(--radius-full);color:var(--solution-primary)}.empty-solutions p{color:var(--text-secondary);margin-bottom:var(--space-5)}.error-state{text-align:center;padding:var(--space-12) var(--space-4)}.error-state h2{font-size:var(--font-xl);margin-bottom:var(--space-2)}.error-state p{color:var(--text-secondary);margin-bottom:var(--space-6)}.join-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height) - var(--space-12));padding:var(--space-8) var(--space-4)}.join-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:var(--space-10);text-align:center;max-width:400px;width:100%;animation:slideUp .3s ease}.join-icon{width:80px;height:80px;margin:0 auto var(--space-6);display:flex;align-items:center;justify-content:center;background:var(--accent-light);border-radius:var(--radius-full);color:var(--accent-primary)}.join-card h1{font-size:var(--font-base);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.group-name{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-4)}.join-card .group-description{color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.5}.group-info{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-8)}.btn-xl{width:100%;padding:var(--space-4) var(--space-6);font-size:var(--font-lg);font-weight:600}.error-card{background:#fef2f2;border-color:#fecaca}.error-icon{width:80px;height:80px;margin:0 auto var(--space-6);display:flex;align-items:center;justify-content:center;background:#fee2e2;border-radius:var(--radius-full);color:#dc2626}.error-card h2{font-size:var(--font-xl);color:#991b1b;margin-bottom:var(--space-2)}.error-card p{color:#b91c1c}.skeleton-card{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.skeleton-card .skeleton-title{width:200px;height:28px}.skeleton-card .skeleton-text{width:150px;height:20px}.not-found{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height) - var(--space-12));text-align:center;padding:var(--space-8) var(--space-4)}.not-found-content{max-width:400px}.not-found h1{font-size:6rem;font-weight:800;color:var(--bg-tertiary);line-height:1;margin-bottom:var(--space-2)}.not-found h2{font-size:var(--font-xl);margin-bottom:var(--space-4)}.not-found p{color:var(--text-secondary);margin-bottom:var(--space-8)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}p{color:var(--text-secondary)}a{color:var(--accent-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-hover)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;outline:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit;border:none;outline:none;background:none}input:focus,textarea:focus,select:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-primary);color:#fff}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn .3s ease-out}.slide-up{animation:slideUp .3s ease-out}.skeleton{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--bg-primary: #FAFAFA;--bg-secondary: #F5F5F5;--bg-tertiary: #EEEEEE;--bg-card: #FFFFFF;--text-primary: #1A1A1A;--text-secondary: #666666;--text-muted: #999999;--text-inverted: #FFFFFF;--border-color: #E5E5E5;--border-light: #F0F0F0;--problem-primary: #FF6B6B;--problem-secondary: #FF8787;--problem-bg: #FFF5F5;--problem-bg-hover: #FFEDED;--problem-border: #FFCDD2;--problem-text: #C62828;--solution-primary: #2ECC71;--solution-secondary: #58D68D;--solution-bg: #F0FFF4;--solution-bg-hover: #E8F8ED;--solution-border: #A9DFBF;--solution-text: #1B7A41;--accent-primary: #3B82F6;--accent-hover: #2563EB;--accent-light: #EFF6FF;--success: #10B981;--warning: #F59E0B;--error: #EF4444;--skeleton-base: #E5E5E5;--skeleton-shine: #F5F5F5;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 12px 40px rgba(0, 0, 0, .16);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--header-height: 64px;--max-width: 1200px;--content-width: 720px}
