@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@500;600;700&display=swap");:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#1a1a27;--bg-card-hover:#22223a;--bg-elevated:#252538;--bg-input:#16162266;--text-primary:#f0f0f5;--text-secondary:#9d9db5;--text-muted:#6b6b85;--accent-blue:#3b82f6;--accent-blue-hover:#2563eb;--accent-red:#ef4444;--accent-green:#22c55e;--accent-yellow:#eab308;--accent-purple:#a855f7;--accent-pink:#ec4899;--gradient-french:linear-gradient(135deg,#002395,#ffffff33 50%,#ed2939);--gradient-accent:linear-gradient(135deg,#3b82f6,#a855f7);--gradient-warm:linear-gradient(135deg,#f97316,#ef4444);--gradient-card:linear-gradient(145deg,rgba(59,130,246,0.05),rgba(168,85,247,0.05));--border-color:#2a2a40;--border-glow:rgba(59,130,246,0.3);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 2px 8px rgba(0,0,0,0.3);--shadow-md:0 4px 20px rgba(0,0,0,0.4);--shadow-lg:0 8px 40px rgba(0,0,0,0.5);--shadow-glow:0 0 20px rgba(59,130,246,0.15);--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}a{color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-blue-hover)}.navbar{position:-webkit-sticky;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;background:rgba(10,10,15,.85);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border-color)}.navbar-brand{font-family:Space Grotesk,sans-serif;font-size:1.5rem;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;letter-spacing:-.5px}.navbar-brand,.navbar-brand span{-webkit-text-fill-color:transparent}.navbar-brand span{background:var(--gradient-warm);-webkit-background-clip:text}.navbar-links{display:flex;align-items:center;gap:.5rem}.navbar-links a,.navbar-links button{padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.875rem;font-weight:500;transition:all var(--transition-fast);border:none;cursor:pointer;font-family:inherit}.navbar-links a{color:var(--text-secondary)}.navbar-links a:hover{color:var(--text-primary);background:var(--bg-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:all var(--transition-normal);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-accent);color:white;box-shadow:0 2px 12px rgba(59,130,246,.3)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px rgba(59,130,246,.5)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent-blue)}.btn-danger{background:var(--accent-red);color:white}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-success{background:var(--accent-green);color:white}.btn-success:hover:not(:disabled){background:#16a34a}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-card)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.875rem 2rem;font-size:1rem}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-sm)}.input-group{display:flex;flex-direction:column;gap:.375rem}.input-group label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.input,select,textarea{padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.9375rem;transition:all var(--transition-fast);outline:none;width:100%}.input:focus,select:focus,textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px rgba(59,130,246,.15)}.input::placeholder,textarea::placeholder{color:var(--text-muted)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239d9db5' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal)}.card:hover{border-color:rgba(59,130,246,.3);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.card-body{padding:1rem}.meme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem;padding:1.5rem}.meme-card{position:relative;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal);cursor:pointer}.meme-card:hover{border-color:rgba(59,130,246,.3);box-shadow:var(--shadow-glow);transform:translateY(-3px)}.meme-card-media{position:relative;aspect-ratio:16/9;background:var(--bg-secondary);overflow:hidden}.meme-card-media img,.meme-card-media video{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.meme-card:hover .meme-card-media img{transform:scale(1.05)}.meme-card-info{padding:1rem}.meme-card-title{font-weight:700;font-size:.9375rem;margin-bottom:.375rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meme-card-meta{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--text-muted)}.meme-card-uploader{color:var(--accent-blue);font-weight:500}.meme-card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.tag{display:inline-flex;align-items:center;padding:.25rem .625rem;background:rgba(59,130,246,.1);color:var(--accent-blue);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;transition:all var(--transition-fast);cursor:pointer;border:1px solid transparent}.tag:hover{background:rgba(59,130,246,.2);border-color:var(--accent-blue)}.tag.active{background:var(--accent-blue);color:white}.tag-type{background:rgba(168,85,247,.1);color:var(--accent-purple)}.tag-type:hover{background:rgba(168,85,247,.2);border-color:var(--accent-purple)}.tag-type.active{background:var(--accent-purple);color:white}.search-bar{position:relative;max-width:600px;margin:0 auto}.search-bar .input{padding-left:3rem;padding-right:1.5rem;height:52px;font-size:1rem;border-radius:var(--radius-xl);background:var(--bg-card);border:1px solid var(--border-color)}.search-bar .input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 4px rgba(59,130,246,.1),var(--shadow-glow)}.search-icon{position:absolute;left:1.125rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:1.125rem}.filters-bar{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;overflow-x:auto;scrollbar-width:none}.filters-bar::-webkit-scrollbar{display:none}.filter-group{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.filter-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.vote-container{gap:.25rem}.vote-btn,.vote-container{display:flex;align-items:center}.vote-btn{justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:1.125rem}.vote-btn:hover{background:var(--bg-card);color:var(--text-primary)}.vote-btn.active-up{color:var(--accent-green);background:rgba(34,197,94,.1)}.vote-btn.active-down{color:var(--accent-red);background:rgba(239,68,68,.1)}.vote-count{font-size:.875rem;font-weight:700;min-width:2rem;text-align:center;color:var(--text-secondary)}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center;transition:all var(--transition-normal);cursor:pointer;background:var(--gradient-card)}.upload-zone.dragover,.upload-zone:hover{border-color:var(--accent-blue);background:rgba(59,130,246,.05);box-shadow:var(--shadow-glow)}.upload-zone-icon{font-size:3rem;margin-bottom:1rem;opacity:.6}.upload-zone h3{font-size:1.125rem;font-weight:700;margin-bottom:.5rem}.upload-zone p{color:var(--text-muted);font-size:.875rem}.range-slider{position:relative;width:100%;height:6px;background:var(--bg-elevated);border-radius:3px;margin:1.5rem 0}.range-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;width:100%;height:6px;background:transparent;pointer-events:none;outline:none}.range-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent-blue);border:3px solid var(--bg-primary);box-shadow:0 2px 6px rgba(59,130,246,.4);cursor:pointer;pointer-events:all;-webkit-transition:transform var(--transition-fast);transition:transform var(--transition-fast)}.range-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.progress-bar{height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-accent);border-radius:3px;transition:width var(--transition-normal)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .2s ease}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.125rem;font-weight:700}.modal-body{padding:1.5rem}.auth-container{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 64px);padding:2rem}.auth-card{width:100%;max-width:420px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-lg)}.auth-card h1{font-family:Space Grotesk,sans-serif;font-size:1.75rem;font-weight:800;text-align:center;margin-bottom:.375rem}.auth-card p{text-align:center;color:var(--text-muted);font-size:.875rem;margin-bottom:2rem}.auth-tabs{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:4px;margin-bottom:1.5rem}.auth-tab{flex:1 1;padding:.625rem;border:none;background:transparent;color:var(--text-muted);font-weight:600;font-size:.875rem;font-family:inherit;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.auth-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-error{padding:.75rem 1rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--accent-red);font-size:.875rem}.admin-layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 64px)}.admin-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:1.5rem 1rem}.admin-sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.admin-sidebar-link.active,.admin-sidebar-link:hover{background:var(--bg-card);color:var(--text-primary)}.admin-content{padding:2rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;transition:all var(--transition-normal)}.stat-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow)}.stat-card-value{font-size:2rem;font-weight:800;font-family:Space Grotesk,sans-serif;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card-label{font-size:.8125rem;color:var(--text-muted);font-weight:500;margin-top:.25rem}.profile-header{display:flex;align-items:center;gap:1.5rem;padding:3rem 2rem;background:var(--gradient-card);border-bottom:1px solid var(--border-color)}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--gradient-accent);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;color:white;flex-shrink:0}.profile-info h1{font-size:1.5rem;font-weight:800}.profile-info p{color:var(--text-muted);font-size:.875rem}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-pending{background:rgba(234,179,8,.1);color:var(--accent-yellow)}.badge-approved{background:rgba(34,197,94,.1);color:var(--accent-green)}.badge-rejected{background:rgba(239,68,68,.1);color:var(--accent-red)}.badge-processing{background:rgba(59,130,246,.1);color:var(--accent-blue)}.hero{position:relative;padding:4rem 2rem 2rem;text-align:center;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at center,rgba(59,130,246,.08) 0,transparent 60%);animation:pulse 8s ease-in-out infinite}.hero h1{font-family:Space Grotesk,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;letter-spacing:-1px;margin-bottom:.75rem}.hero h1,.hero p{position:relative}.hero p{color:var(--text-secondary);font-size:1.125rem;max-width:500px;margin:0 auto 2rem}.pagination{gap:.5rem;padding:2rem}.pagination,.pagination-btn{display:flex;align-items:center;justify-content:center}.pagination-btn{min-width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);font-weight:600;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){border-color:var(--accent-blue);color:var(--text-primary)}.pagination-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:white}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.4}.empty-state h3{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.empty-state p{color:var(--text-muted);font-size:.9375rem;max-width:400px}.spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .6s linear infinite}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:400px}.review-card{display:grid;grid-template-columns:280px 1fr;grid-gap:1.5rem;gap:1.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;transition:all var(--transition-normal)}.review-card:hover{border-color:var(--border-glow)}.review-card-media{aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.review-card-media video{width:100%;height:100%;object-fit:cover}.review-card-actions{display:flex;gap:.5rem;margin-top:1rem}.table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse}td,th{padding:.875rem 1rem;text-align:left;font-size:.875rem}th{background:var(--bg-card);color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}td,th{border-bottom:1px solid var(--border-color)}tr:last-child td{border-bottom:none}tr:hover td{background:rgba(59,130,246,.02)}.toast{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:300;animation:slideUp .3s ease;font-size:.875rem;max-width:400px}.toast-success{border-left:3px solid var(--accent-green)}.toast-error{border-left:3px solid var(--accent-red)}.toast-info{border-left:3px solid var(--accent-blue)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-elevated) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@media (max-width:768px){.meme-grid{padding:1rem;gap:1rem}.admin-layout,.meme-grid{grid-template-columns:1fr}.admin-sidebar{display:flex;overflow-x:auto;padding:.5rem;border-right:none;border-bottom:1px solid var(--border-color)}.review-card{grid-template-columns:1fr}.hero h1{font-size:1.75rem}.navbar{padding:0 1rem}.filters-bar{padding:.75rem 1rem}}@media (max-width:480px){.auth-card{padding:1.5rem}.modal{margin:.5rem}}.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-2{margin-bottom:1rem}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-muted{color:var(--text-muted)}.font-bold{font-weight:700}.w-full{width:100%}