:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-brand:"Grand Hotel", cursive, sans-serif;--font-mono:"JetBrains Mono", monospace;--bg-main:#000;--bg-secondary:#121212;--bg-card:#000;--bg-card-hover:#121212;--border-subtle:#262626;--border-focus:#555;--border-highlight:#363636;--text-primary:#f5f5f5;--text-secondary:#a8a8a8;--text-muted:#737373;--accent-primary:#0095f6;--accent-primary-hover:#1877f2;--accent-glow:#0095f640;--ig-primary:#0095f6;--ig-primary-hover:#1877f2;--ig-gradient:linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);--ig-gradient-subtle:linear-gradient(135deg, #f094331f, #dc27431f, #bc18881f);--status-pending:#f59e0b;--status-pending-bg:#f59e0b26;--status-validated:#00c278;--status-validated-bg:#00c27826;--status-rejected:#ed4956;--status-rejected-bg:#ed495626;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.2s cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}.app-container{flex-direction:column;max-width:975px;min-height:100vh;margin:0 auto;padding:1.5rem 1.25rem 0;display:flex}.app-main-content{flex-direction:column;flex:1 0 auto;display:flex}.file-input-hidden{display:none}.app-header{z-index:100;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);background:#000000e0;justify-content:space-between;align-items:center;margin:-1.5rem -1.25rem 2rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}.brand-group{align-items:center;gap:.85rem;display:flex}.brand-icon-wrapper{background:var(--ig-gradient);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 2px 10px #dc274359}.brand-title{font-family:var(--font-brand);color:var(--text-primary);letter-spacing:.5px;margin-top:2px;font-size:2.25rem;font-weight:400;line-height:1}.brand-subtitle{display:none}.header-right-group{align-items:center;gap:.75rem;display:flex}.pulse-dot{background-color:currentColor;border-radius:50%;width:7px;height:7px;animation:2s ease-out infinite pulse-ring}@keyframes pulse-ring{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.3)}to{opacity:.8;transform:scale(.95)}}.header-upload-btn{border-radius:var(--radius-sm);background:var(--ig-primary);color:#fff;cursor:pointer;transition:background-color var(--transition-fast);border:1px solid #0000;align-items:center;gap:.45rem;padding:.45rem .95rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:inline-flex}.header-upload-btn:hover:not(:disabled){background:var(--ig-primary-hover)}.header-upload-btn:active:not(:disabled){opacity:.85}.header-upload-btn:disabled{opacity:.5;cursor:not-allowed}.auth-menu-container{display:inline-block;position:relative}.auth-btn-signin{border-radius:var(--radius-sm);color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast);background:#121212;align-items:center;gap:.5rem;padding:.45rem .9rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:inline-flex}.auth-btn-signin:hover{background:#262626;border-color:#363636}.auth-btn-signin:active{opacity:.85}.auth-user-pill{border-radius:var(--radius-full);border:1px solid var(--border-subtle);cursor:pointer;color:var(--text-primary);transition:all var(--transition-fast);background:#121212;align-items:center;gap:.6rem;padding:.3rem .75rem .3rem .35rem;font-family:inherit;display:inline-flex}.auth-user-pill:hover{background:#1c1c1c;border-color:#363636}.auth-avatar{background:var(--ig-gradient);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex;box-shadow:0 1px 4px #0006}.auth-username{letter-spacing:.01em;font-size:.8125rem;font-weight:600}.auth-role-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);color:#00c278;background:#00c27826;border:1px solid #00c2784d;padding:.15rem .45rem;font-size:.6875rem;font-weight:700}.auth-chevron{color:var(--text-secondary);transition:transform var(--transition-fast)}.auth-chevron.open{transform:rotate(180deg)}.auth-popover{border:1px solid var(--border-subtle);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(20px);z-index:1000;background:#121212;width:300px;padding:1.25rem;animation:.18s cubic-bezier(.16,1,.3,1) auth-slide-down;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 36px #000000d9}.auth-menu-container.dropup .auth-popover,.auth-popover.dropup{animation:.18s cubic-bezier(.16,1,.3,1) auth-slide-up;top:auto;bottom:calc(100% + 10px)}@keyframes auth-slide-up{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=480px){.auth-menu-container.dropup .auth-popover,.auth-popover.dropup{max-width:calc(100vw - 2.5rem);left:auto;right:0}}@keyframes auth-slide-down{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-popover-header{margin-bottom:1rem}.auth-popover-title{color:var(--text-primary);margin:0;font-size:1rem;font-weight:700}.auth-popover-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.75rem}.auth-form{flex-direction:column;gap:.875rem;display:flex}.auth-field{flex-direction:column;gap:.35rem;display:flex}.auth-label{color:var(--text-secondary);font-size:.75rem;font-weight:600}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:.75rem}.auth-input{border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);transition:all var(--transition-fast);background:#000;border-radius:6px;outline:none;padding:.55rem .75rem .55rem 2.25rem;font-family:inherit;font-size:.8125rem}.auth-input:focus{background:#000;border-color:#555}.auth-input::placeholder{color:var(--text-muted)}.auth-error-banner{color:#ed4956;background:#ed495626;border:1px solid #ed49564d;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500;display:flex}.auth-submit-btn{background:var(--ig-primary);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin-top:.25rem;padding:.55rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:flex}.auth-submit-btn:hover{background:var(--ig-primary-hover)}.auth-submit-btn:active{opacity:.85}.auth-profile-card{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem;display:flex}.auth-profile-avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9375rem;font-weight:700;display:flex}.auth-profile-name{color:var(--text-primary);font-size:.875rem;font-weight:700}.auth-profile-desc{color:var(--text-secondary);font-size:.75rem}.auth-menu-list{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.auth-menu-item{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:#ffffff08;align-items:center;gap:.65rem;padding:.55rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:flex}.auth-menu-item:hover:not(:disabled){background:#262626;border-color:#363636}.auth-menu-item:disabled{opacity:.5;cursor:not-allowed}.auth-menu-item-danger{color:#ed4956;background:#ed495614;border-color:#ed495640}.auth-menu-item-danger:hover:not(:disabled){color:#ff5b68;background:#ed49562e;border-color:#ed495673}.auth-menu-divider{background:var(--border-subtle);height:1px;margin:.5rem 0 .75rem}.auth-logout-btn{border-radius:var(--radius-sm);color:#f87171;cursor:pointer;width:100%;transition:all var(--transition-fast);background:#ef444414;border:1px solid #ef444433;align-items:center;gap:.5rem;padding:.55rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:flex}.auth-logout-btn:hover{color:#fca5a5;background:#ef444433;border-color:#ef444466}.upload-notice-banner{border-radius:var(--radius-md);color:#a7f3d0;-webkit-backdrop-filter:blur(8px);background:#10b9811f;border:1px solid #10b9814d;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;animation:.2s ease-out auth-slide-down;display:flex}.notice-dismiss-btn{color:#a7f3d0;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);background:0 0;border:none;margin-left:auto;padding:0 .25rem;font-size:1.1rem;line-height:1}.notice-dismiss-btn:hover{opacity:1}.staging-view{margin-bottom:3rem;animation:.3s cubic-bezier(.16,1,.3,1) fadeIn}.staging-top-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.btn-back{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-back:hover:not(:disabled){color:var(--text-primary);background:var(--bg-card-hover);border-color:#ffffff40;transform:translate(-2px)}.staging-grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=880px){.staging-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start}}.staging-preview-container{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#121212;flex-direction:column;display:flex;overflow:hidden}.staging-queue-indicator{border-bottom:1px solid var(--border-subtle);background:#000;justify-content:center;align-items:center;padding:.65rem 1rem;display:flex}.staging-queue-badge{font-family:var(--font-sans);letter-spacing:.04em;color:#f5f5f5;border-radius:var(--radius-full);background:#ffffff1a;border:1px solid #fff3;padding:.2rem .65rem;font-size:.8125rem;font-weight:600}.staging-preview-canvas{background-color:#060910;background-image:linear-gradient(45deg,#ffffff05 25%,#0000 25%),linear-gradient(-45deg,#ffffff05 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ffffff05 75%),linear-gradient(-45deg,#0000 75%,#ffffff05 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;justify-content:center;align-items:center;width:100%;height:clamp(380px,60vh,560px);padding:0;display:flex;overflow:hidden}.staging-sidebar{flex-direction:column;gap:1.5rem;display:flex}.staging-error-banner{border-radius:var(--radius-md);color:#fca5a5;background:#ef44441f;border:1px solid #ef44444d;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;font-size:.8125rem;display:flex}.staging-error-banner .error-title{color:#f87171;margin-bottom:.2rem;font-weight:700}.staging-error-banner .error-desc{color:#fecaca;word-break:break-word}.staging-action-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;gap:1rem;padding:1.25rem;display:flex;box-shadow:0 8px 24px #0000004d}.action-card-header{justify-content:space-between;align-items:center;display:flex}.action-card-title{color:var(--text-primary);font-size:1rem;font-weight:700}.action-card-status-pill{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);padding:.2rem .55rem;font-size:.72rem;font-weight:700}.action-card-status-pill.detecting{color:#a5b4fc;background:#6366f126;border:1px solid #6366f159}.staging-privacy-alert{border-radius:var(--radius-md);align-items:flex-start;gap:.75rem;padding:.85rem 1rem;font-size:.8125rem;line-height:1.45;display:flex}.staging-privacy-alert.warning{color:#fde68a;background:#f59e0b1a;border:1px solid #f59e0b59;box-shadow:0 4px 14px #f59e0b14}.staging-privacy-alert.warning .privacy-alert-icon{color:#f59e0b}.staging-privacy-alert.success{color:#a7f3d0;background:#10b9811a;border:1px solid #10b9814d}.staging-privacy-alert.success .privacy-alert-icon{color:#10b981}.staging-privacy-alert.neutral{color:#bfdbfe;background:#3b82f614;border:1px solid #3b82f633}.staging-privacy-alert.neutral .privacy-alert-icon{color:#38bdf8}.staging-privacy-alert.detecting{color:#c7d2fe;background:#6366f114;border:1px solid #6366f133;align-items:center;gap:.6rem}.privacy-alert-icon-wrap{flex-shrink:0;margin-top:1px}.privacy-alert-body{flex-direction:column;gap:.2rem;display:flex}.privacy-alert-title{font-size:.85rem;font-weight:700}.staging-privacy-alert.warning .privacy-alert-title{color:#fbbf24}.staging-privacy-alert.success .privacy-alert-title{color:#34d399}.staging-privacy-alert.neutral .privacy-alert-title{color:#60a5fa}.privacy-alert-text{opacity:.92}.staging-actions{flex-direction:column;gap:.75rem;margin-top:.25rem;display:flex}.btn-upload-staged{border-radius:var(--radius-sm);background:var(--ig-primary);color:#fff;letter-spacing:.01em;cursor:pointer;width:100%;transition:background-color var(--transition-fast);border:none;justify-content:center;align-items:center;gap:.6rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.9375rem;font-weight:600;display:inline-flex}.btn-upload-staged:hover:not(:disabled){background:var(--ig-primary-hover)}.btn-upload-staged:active:not(:disabled){opacity:.85}.btn-upload-staged:disabled{opacity:.65;cursor:not-allowed}.btn-upload-staged.blocked{color:#fcd34d;box-shadow:none;opacity:.85;background:#f59e0b1f;border:1px solid #f59e0b59}.btn-upload-staged.blocked:hover{box-shadow:none;background:#f59e0b29;border-color:#f59e0b73;transform:none}.staging-secondary-actions{gap:.5rem;display:flex}.btn-cancel-staged{color:#fca5a5;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);background:#ef444414;border:1px solid #ef444433;flex:1;padding:.65rem .875rem;font-family:inherit;font-size:.8125rem;font-weight:600}.btn-cancel-staged:hover:not(:disabled){color:#f87171;background:#ef444429;border-color:#ef444459}.staging-image-wrapper{max-width:100%;line-height:0;display:inline-block;position:relative}.face-detections-overlay{pointer-events:none;position:absolute;inset:0}.face-box{box-sizing:border-box;background:#38bdf81f;border:2px solid #38bdf8;border-radius:4px;animation:.3s cubic-bezier(.16,1,.3,1) faceBoxAppear;position:absolute;box-shadow:0 0 14px #38bdf873,inset 0 0 10px #38bdf826}@keyframes faceBoxAppear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.face-corner{width:7px;height:7px;position:absolute}.face-corner.top-left{border-top:3px solid #bae6fd;border-left:3px solid #bae6fd;top:-2px;left:-2px}.face-corner.top-right{border-top:3px solid #bae6fd;border-right:3px solid #bae6fd;top:-2px;right:-2px}.face-corner.bottom-left{border-bottom:3px solid #bae6fd;border-left:3px solid #bae6fd;bottom:-2px;left:-2px}.face-corner.bottom-right{border-bottom:3px solid #bae6fd;border-right:3px solid #bae6fd;bottom:-2px;right:-2px}.face-label{-webkit-backdrop-filter:blur(8px);color:#38bdf8;font-family:var(--font-mono);border-radius:var(--radius-sm);white-space:nowrap;background:#0a0e17eb;border:1px solid #38bdf8;align-items:center;gap:.35rem;padding:.2rem .5rem;font-size:.6875rem;font-weight:700;line-height:1.2;display:inline-flex;position:absolute;top:-24px;left:-2px;box-shadow:0 4px 12px #00000080}.face-label-dot{background:#38bdf8;border-radius:50%;width:5px;height:5px;box-shadow:0 0 6px #38bdf8}.face-count-badge{align-items:center;gap:.5rem;display:inline-flex}.face-count-text{color:#38bdf8;font-weight:600}.btn-toggle-boxes{background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);justify-content:center;align-items:center;padding:3px 6px;display:inline-flex}.btn-toggle-boxes:hover{color:var(--text-primary);background:#ffffff0d;border-color:#ffffff4d}.face-detecting-spinner{color:#a5b4fc;align-items:center;gap:.4rem;font-size:.75rem;display:inline-flex}.face-detect-error{color:#f87171;font-size:.75rem}.ig-profile-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:3rem;margin-bottom:1.5rem;padding:1rem 0 2.25rem;display:flex}.ig-profile-avatar-container{flex-shrink:0}.ig-profile-avatar-ring{background:var(--ig-gradient);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;padding:3px;display:flex;box-shadow:0 4px 16px #dc274340}.ig-profile-avatar-inner{width:100%;height:100%;color:var(--text-primary);transition:background-color var(--transition-fast), color var(--transition-fast);background:#000;border:2px solid #000;border-radius:50%;justify-content:center;align-items:center;display:flex}.ig-profile-avatar-btn{cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none}.ig-profile-avatar-btn:hover{transform:scale(1.05);box-shadow:0 6px 22px #dc274373}.ig-profile-avatar-btn:hover .ig-profile-avatar-inner{color:#fff;background:#141414}.ig-profile-avatar-btn:active{transform:scale(.97)}.ig-profile-avatar-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.ig-profile-info{flex-direction:column;flex:1;gap:.75rem;display:flex}.ig-profile-title-row{align-items:center;gap:.5rem;display:flex}.ig-username{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.ig-verified-badge{color:var(--ig-primary);fill:var(--ig-primary);flex-shrink:0}.ig-profile-stats{color:var(--text-primary);align-items:center;gap:2rem;font-size:.9375rem;display:flex}.ig-stat-count{font-weight:700}.ig-profile-bio{font-size:.875rem;line-height:1.4}.ig-bio-name{color:var(--text-primary);font-weight:600}.ig-bio-desc{color:var(--text-secondary)}.gallery-section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title-group{align-items:center;gap:.65rem;display:flex}.section-title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:700}.count-badge{border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);background:#121212;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.btn-refresh{border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#121212;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.btn-refresh:hover{color:var(--text-primary);background:#262626;border-color:#363636}.filter-tabs{border-top:1px solid var(--border-subtle);justify-content:center;align-items:center;gap:3rem;margin-bottom:1.5rem;display:flex}.filter-tab{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;border-top:1px solid #0000;align-items:center;gap:.45rem;margin-top:-1px;padding:1rem 0;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}.filter-tab:hover{color:var(--text-primary)}.filter-tab.active{color:var(--text-primary);border-top-color:var(--text-primary)}.filter-tab-icon{width:14px;height:14px}.images-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.empty-state{text-align:center;border-radius:var(--radius-md);border:1px dashed var(--border-subtle);background:#121212;padding:4rem 2rem}.empty-state-icon{width:56px;height:56px;color:var(--text-muted);background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.empty-state-title{color:var(--text-primary);margin-bottom:.35rem;font-size:1.125rem;font-weight:600}.empty-state-desc{color:var(--text-secondary);font-size:.875rem}@media (width<=768px){.images-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.ig-profile-header{gap:1.5rem;padding-bottom:1.5rem}.ig-profile-avatar-ring{width:76px;height:76px}.filter-tabs{gap:1.5rem}}@media (width<=480px){.images-grid{grid-template-columns:1fr;gap:.75rem}.ig-profile-header{text-align:center;flex-direction:column;gap:1rem}.ig-profile-stats{justify-content:center}.filter-tabs{gap:.75rem}}.image-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:border-color var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.image-card:hover{border-color:#363636}.thumbnail-container{aspect-ratio:1;cursor:pointer;background:#000;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.thumbnail-img{object-fit:cover;width:100%;height:100%;transition:transform .25s;display:block}.thumbnail-container:hover .thumbnail-img{transform:scale(1.03)}.thumbnail-hover-overlay{opacity:0;color:#fff;background:#00000073;justify-content:center;align-items:center;transition:opacity .18s;display:flex;position:absolute;inset:0}.thumbnail-container:hover .thumbnail-hover-overlay{opacity:1}.hover-stat{align-items:center;gap:.5rem;font-size:1rem;font-weight:700;display:flex}.hover-id{font-family:var(--font-sans)}.card-likes-badge{z-index:3;-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-full);color:#fff;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:#000000ad;border:1px solid #ffffff24;align-items:center;gap:5px;padding:3px 8px;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 6px #0006}.thumbnail-container:hover .card-likes-badge{background:#000000d1;border-color:#ffffff40}.card-likes-badge:hover{background:#000000e0;border-color:#ff304073;transform:scale(1.08)}.card-likes-badge.liked{background:#141414e0;border-color:#ff3040a6;box-shadow:0 2px 10px #ff304059}.thumbnail-container:hover .card-likes-badge.liked{background:#1a0c0ef0;border-color:#ff3040d9;box-shadow:0 3px 12px #ff304073}.card-likes-badge.liked:hover{background:#240c10f2;border-color:#ff3040;transform:scale(1.08)}.card-likes-badge:active{transform:scale(.94)}.card-likes-badge.bouncing{animation:.3s cubic-bezier(.175,.885,.32,1.275) badge-like-pop}@keyframes badge-like-pop{0%{transform:scale(1)}45%{border-color:#ff3040cc;transform:scale(1.24);box-shadow:0 0 12px #ff304099}to{transform:scale(1)}}.card-likes-heart-anchor{flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.card-likes-heart{color:#ff3040;filter:drop-shadow(0 1px 2px #ff304066);transition:transform var(--transition-fast), color var(--transition-fast);flex-shrink:0}.card-likes-badge:not(.liked) .card-likes-heart{color:#ffffffd1;filter:drop-shadow(0 1px 2px #00000080)}.card-likes-badge:not(.liked):hover .card-likes-heart{color:#ff3040;filter:drop-shadow(0 1px 3px #ff304080)}.card-likes-badge:hover .card-likes-heart{transform:scale(1.15)}.card-likes-count{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.flying-heart-container{aspect-ratio:1;pointer-events:none;z-index:10;color:#ff3040;will-change:transform, opacity;justify-content:center;align-items:center;width:75%;animation:.65s cubic-bezier(.22,.85,.36,1) forwards heart-fly-and-shrink;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.flying-heart-icon{color:#ff3040;filter:drop-shadow(0 6px 26px #ff3040d9)drop-shadow(0 0 12px #0009);width:100%;height:100%}@keyframes heart-fly-and-shrink{0%{opacity:0;transform:translate(-50%,-50%)scale(0)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}28%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{transform:translate(calc(-50% + var(--target-x)), calc(-50% + var(--target-y))) scale(var(--target-scale,.12));opacity:.95}}.thumbnail-placeholder{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;height:100%;font-size:.8125rem;display:flex}.thumbnail-placeholder.loading{color:var(--text-secondary);background:linear-gradient(90deg,#ffffff05 25%,#ffffff0f 50%,#ffffff05 75%) 0 0/200% 100%;animation:2s linear infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-meta-info{justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .75rem .25rem;display:flex}.image-id{font-family:var(--font-sans);color:var(--text-secondary);font-size:.75rem;font-weight:600}.status-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.2rem .5rem;font-size:.6875rem;font-weight:700;display:inline-flex}.status-pill.pending{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b4d}.status-pill.validated{color:#00c278;background:#00c27826;border:1px solid #00c2784d}.status-pill.rejected{color:#ed4956;background:#ed495626;border:1px solid #ed49564d}.status-pill.auto-reject-face{color:#ed4956;background:#ed49562e;border:1px solid #ed495666}.card-actions{gap:.5rem;padding:.4rem .75rem .75rem;display:flex}.btn-action{border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-subtle);background:#000;flex:1;justify-content:center;align-items:center;gap:.35rem;padding:.4rem .6rem;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}.btn-action.validate{color:#00c278}.btn-action.validate:hover:not(:disabled){color:#fff;background:#00c278;border-color:#00c278}.btn-action.reject{color:#ed4956}.btn-action.reject:hover:not(:disabled){color:#fff;background:#ed4956;border-color:#ed4956}.btn-action:disabled{opacity:.35;cursor:not-allowed}.modal-overlay{-webkit-backdrop-filter:blur(12px);z-index:999;background:#000000eb;justify-content:center;align-items:center;padding:2rem;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal-content{flex-direction:column;align-items:center;gap:1rem;max-width:92vw;max-height:90vh;display:flex;position:relative}.modal-image-wrapper{justify-content:center;align-items:center;min-width:240px;min-height:180px;max-height:88vh;display:flex;position:relative}.modal-loading-indicator{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-size:.875rem;display:flex;position:absolute;inset:0}.modal-img{border-radius:var(--radius-xs);border:1px solid var(--border-subtle);object-fit:contain;max-width:100%;max-height:88vh;transition:opacity .2s ease-in;box-shadow:0 20px 60px #000000d9}.modal-img.loading{opacity:0}.modal-img.loaded{opacity:1}.modal-close-btn{border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-primary);cursor:pointer;transition:var(--transition-fast);z-index:10;background:#121212;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-18px;right:-18px}.modal-close-btn:hover{color:#fff;background:#262626}.emoji-canvas-container{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;max-width:100%;max-height:100%;line-height:0;display:flex;position:relative}.fabric-main-canvas{border-radius:var(--radius-sm);display:block;box-shadow:0 8px 30px #00000080}.emoji-canvas-container .canvas-container{border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 8px 30px #00000080}.canvas-face-boxes-overlay{pointer-events:none;z-index:5;position:absolute;top:0;left:0}.face-box{pointer-events:none;-webkit-user-select:none;user-select:none;transition:border-color var(--transition-fast), background-color var(--transition-fast)}.face-box:hover:not(.active){background:#38bdf814;border-color:#38bdf8b3}.face-box.active{box-sizing:border-box;background:#38bdf826;border:2px solid #38bdf8;border-radius:4px;animation:2s ease-in-out infinite activeTargetPulse;position:absolute;box-shadow:0 0 16px #38bdf899,inset 0 0 12px #38bdf833}@keyframes activeTargetPulse{0%{border-color:#38bdf8;box-shadow:0 0 12px #38bdf880,inset 0 0 8px #38bdf826}50%{border-color:#7dd3fc;box-shadow:0 0 22px #38bdf8d9,inset 0 0 16px #38bdf859}to{border-color:#38bdf8;box-shadow:0 0 12px #38bdf880,inset 0 0 8px #38bdf826}}.face-box.grey{box-shadow:none;box-sizing:border-box;opacity:.75;background:#94a3b80d;border:2px dashed #94a3b880;border-radius:4px;position:absolute}.face-box.active .face-corner.top-left{border-top:3px solid #fff;border-left:3px solid #fff}.face-box.active .face-corner.top-right{border-top:3px solid #fff;border-right:3px solid #fff}.face-box.active .face-corner.bottom-left{border-bottom:3px solid #fff;border-left:3px solid #fff}.face-box.active .face-corner.bottom-right{border-bottom:3px solid #fff;border-right:3px solid #fff}.face-box.grey .face-corner.top-left{border-top:2px solid #94a3b8;border-left:2px solid #94a3b8}.face-box.grey .face-corner.top-right{border-top:2px solid #94a3b8;border-right:2px solid #94a3b8}.face-box.grey .face-corner.bottom-left{border-bottom:2px solid #94a3b8;border-left:2px solid #94a3b8}.face-box.grey .face-corner.bottom-right{border-bottom:2px solid #94a3b8;border-right:2px solid #94a3b8}.face-label{pointer-events:auto;cursor:pointer}.face-label.active{color:#38bdf8;background:#0a0e17f2;border-color:#38bdf8;box-shadow:0 4px 14px #38bdf866}.face-label.active .face-label-dot{background:#38bdf8;box-shadow:0 0 6px #38bdf8}.face-label.grey{color:#94a3b8;background:#0f1623e6;border-color:#94a3b866;box-shadow:0 2px 8px #0006}.face-label.grey .face-label-dot{box-shadow:none;background:#94a3b8}.emoji-remove-popup{pointer-events:auto;z-index:70;background:0 0;justify-content:center;align-items:center;animation:.18s cubic-bezier(.175,.885,.32,1.275) popupBadgeAppear;display:flex;position:absolute;transform:translate(-50%,-50%)}@keyframes popupBadgeAppear{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.btn-remove-trash{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:#dc2626;border:2px solid #fff;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 12px #00000080,0 0 8px #ef444480}.btn-remove-trash:hover{background:#b91c1c;transform:scale(1.15);box-shadow:0 6px 16px #ef4444cc}.emoji-picker-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#0a0e1799;flex-direction:column;gap:.875rem;padding:1rem;display:flex}.emoji-panel-header{justify-content:space-between;align-items:center;display:flex}.emoji-panel-title-group{align-items:center;gap:.5rem;display:flex}.emoji-sparkle-icon{color:#fbbf24}.emoji-panel-title{color:var(--text-primary);font-size:.9375rem;font-weight:700}.btn-clear-emojis{color:#fca5a5;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);background:#ef44441a;border:1px solid #ef444440;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.btn-clear-emojis:hover{color:#fff;background:#ef4444}.face-targeting-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#0f1623d9;flex-direction:column;gap:.4rem;padding:.65rem .85rem;font-size:.8125rem;display:flex}.face-targeting-status{color:var(--text-secondary);justify-content:space-between;display:flex}.face-targeting-ratio{font-family:var(--font-mono);color:#38bdf8;font-weight:700}.active-target-badge{color:#38bdf8;border-radius:var(--radius-sm);background:#38bdf81a;border:1px solid #38bdf840;align-items:center;gap:.45rem;padding:.25rem .5rem;font-size:.75rem;font-weight:700;display:inline-flex}.active-target-pulse{background-color:#38bdf8;border-radius:50%;width:7px;height:7px;animation:1.5s infinite pulse-ring;box-shadow:0 0 8px #38bdf8}.all-covered-badge{color:#34d399;border-radius:var(--radius-sm);background:#10b9811a;border:1px solid #10b98140;padding:.25rem .5rem;font-size:.75rem;font-weight:700}.emoji-category-tabs{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#0f1623b3;gap:2px;padding:3px;display:flex}.emoji-cat-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:.3rem;padding:.35rem .25rem;font-size:.72rem;font-weight:600;display:flex}.emoji-cat-btn:hover{color:var(--text-primary)}.emoji-cat-btn.active{background:var(--accent-primary);color:#fff;box-shadow:0 2px 6px #6366f159}.emoji-grid{grid-template-columns:repeat(6,1fr);gap:.4rem;max-height:170px;padding-right:2px;display:grid;overflow-y:auto}.emoji-item-btn{aspect-ratio:1;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:grab;transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:#ffffff08;justify-content:center;align-items:center;font-size:1.35rem;display:flex}.emoji-item-btn:hover{border-color:var(--accent-primary);z-index:2;background:#6366f12e;transform:scale(1.18)}.emoji-item-btn:active{cursor:grabbing;transform:scale(1.05)}.emoji-helper-hint{color:var(--text-muted);border-top:1px solid #ffffff0d;padding-top:.65rem;font-size:.75rem;line-height:1.4}.emoji-strip-container{z-index:60;-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-md);pointer-events:auto;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#0a0e17f5;border:1.5px solid #38bdf8;flex-direction:column;animation:.18s cubic-bezier(.175,.885,.32,1.25) emojiStripAppear;display:flex;position:absolute;overflow:hidden;box-shadow:0 12px 32px #000000bf,0 0 16px #38bdf84d}@keyframes emojiStripAppear{0%{opacity:0;transform:translate(-50%,-6px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}.emoji-strip-header{box-sizing:border-box;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:.35rem;width:100%;padding:.35rem .5rem;display:flex}.emoji-strip-label{color:#38bdf8;white-space:nowrap;flex-shrink:0;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;display:inline-flex}.emoji-strip-hint{color:var(--text-tertiary,#94a3b8);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:500}.emoji-strip-body{align-items:center;gap:.25rem;padding:.35rem;display:flex}.emoji-strip-nav{border:1px solid var(--border-subtle);width:22px;height:28px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:#ffffff0d;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.emoji-strip-nav:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.emoji-strip-scroll{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:4px;padding:2px;display:flex;overflow-x:auto}.emoji-strip-scroll::-webkit-scrollbar{display:none}.emoji-strip-item-btn{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);background:#ffffff0a;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.emoji-strip-item-btn:hover{background:#6366f140;border-color:#6366f180;transform:scale(1.18);box-shadow:0 4px 10px #0006}.emoji-strip-item-btn:active{transform:scale(.95)}.presenter-overlay{z-index:1000;color:#f1f5f9;-webkit-user-select:none;user-select:none;background:#07090e;flex-direction:column;font-family:inherit;display:flex;position:fixed;inset:0;overflow:hidden}.presenter-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172abf;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;display:flex}.presenter-title-group{align-items:center;gap:.75rem;display:flex}.presenter-brand-icon{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:.5rem;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex;box-shadow:0 0 15px #6366f166}.presenter-title{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.1rem;font-weight:700}.presenter-stats-group{align-items:center;gap:.6rem;display:flex}.presenter-stat-pill{color:#94a3b8;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.78rem;font-weight:500;display:flex}.presenter-stat-pill strong{color:#f8fafc}.presenter-stat-pill.highlight{color:#818cf8;background:#6366f126;border-color:#6366f14d}.presenter-actions-group{align-items:center;gap:.6rem;display:flex}.presenter-btn-icon{color:#cbd5e1;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:.5rem;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.8rem;font-weight:500;transition:all .2s;display:flex}.presenter-btn-icon:hover:not(:disabled){color:#fff;background:#ffffff1f}.presenter-btn-icon:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.presenter-btn-icon.close-btn:hover:not(:disabled){color:#ef4444;background:#ef444433;border-color:#ef444466}.presenter-body{flex:1;gap:1.25rem;min-height:0;padding:1.25rem;display:flex;overflow:hidden}.presenter-main-view{background:#090d16;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px -10px #0009}.presenter-main-canvas{background:radial-gradient(circle,#111827 0%,#06080e 100%);flex:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.presenter-main-image{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;transition:opacity .2s,transform .2s;box-shadow:0 20px 40px #000c}.presenter-main-overlay{pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:1rem;left:1rem;right:1rem}.presenter-image-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f8fafc;pointer-events:auto;background:#0f172ad9;border:1px solid #ffffff1f;border-radius:.5rem;align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.85rem;display:flex}.presenter-blank-state{text-align:center;color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:2rem;display:flex}.presenter-blank-icon{color:#818cf8;background:#6366f11a;border:1px dashed #6366f14d;border-radius:1.5rem;justify-content:center;align-items:center;width:5rem;height:5rem;display:flex}.presenter-blank-title{color:#f1f5f9;margin:0;font-size:1.4rem;font-weight:700}.presenter-blank-hint{color:#64748b;max-width:24rem;margin:0;font-size:.95rem;line-height:1.5}.presenter-side-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172a99;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;width:320px;min-width:320px;padding:1.25rem;display:flex;overflow:hidden;box-shadow:0 10px 30px -10px #0006}.presenter-side-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.presenter-side-title{color:#f1f5f9;align-items:center;gap:.5rem;margin:0;font-size:.95rem;font-weight:700;display:flex}.presenter-side-count{color:#64748b;font-size:.75rem}.presenter-candidate-card{flex-direction:column;flex:1;gap:.85rem;min-height:0;display:flex}.presenter-candidate-preview-wrap{background:#020408;border:1px solid #ffffff1a;border-radius:.75rem;flex:1;justify-content:center;align-items:center;min-height:180px;max-height:280px;display:flex;position:relative;overflow:hidden}.presenter-candidate-img{object-fit:contain;max-width:100%;max-height:100%}.presenter-candidate-meta{flex-direction:column;gap:.4rem;display:flex}.presenter-candidate-filename{color:#f8fafc;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.presenter-candidate-status-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.presenter-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.presenter-tag.validated{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.presenter-tag.pending{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.presenter-validation-notice{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf833;border-radius:.4rem;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.73rem;display:flex}.presenter-candidate-actions{gap:.5rem;margin-top:auto;display:flex}.presenter-action-btn{cursor:pointer;border:none;border-radius:.5rem;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.6rem;font-size:.82rem;font-weight:600;transition:all .2s;display:flex}.presenter-action-btn.reject-btn{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.presenter-action-btn.reject-btn:hover:not(:disabled){color:#fff;background:#ef44444d;border-color:#ef4444}.presenter-action-btn.select-btn{color:#fff;background:linear-gradient(135deg,#4f46e5,#6366f1);box-shadow:0 4px 12px #4f46e54d}.presenter-action-btn.select-btn:hover:not(:disabled){background:linear-gradient(135deg,#4338ca,#4f46e5);transform:translateY(-1px)}.presenter-action-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.presenter-history-panel{text-align:center;color:#94a3b8;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.presenter-history-icon{color:#cbd5e1;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:1rem;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:flex}.presenter-history-title{color:#f1f5f9;margin:0;font-size:.95rem;font-weight:600}.presenter-history-text{color:#64748b;margin:0;font-size:.8rem;line-height:1.4}.presenter-empty-panel{text-align:center;color:#94a3b8;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.presenter-footer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172ad9;border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex}.presenter-key-item{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.82rem;transition:all .2s;display:flex}.presenter-key-item:hover:not(:disabled){color:#f1f5f9;background:#ffffff0d}.presenter-key-item:disabled{opacity:.35;cursor:not-allowed}.kbd-badge{color:#f8fafc;background:#1e293b;border:1px solid #fff3;border-bottom:2px solid #ffffff4d;border-radius:.35rem;justify-content:center;align-items:center;min-width:1.75rem;height:1.75rem;padding:0 .4rem;font-family:inherit;font-size:.8rem;font-weight:700;transition:transform .1s,border-color .2s;display:inline-flex;box-shadow:0 2px 4px #0006}.presenter-key-item:active:not(:disabled) .kbd-badge{border-bottom-width:1px;transform:translateY(1px)}.kbd-badge.reject{color:#f87171;border-color:#ef444466}.kbd-badge.select{color:#a5b4fc;border-color:#6366f166}.presenter-trigger-btn{color:#c7d2fe;cursor:pointer;background:linear-gradient(135deg,#6366f133,#a855f733);border:1px solid #6366f166;border-radius:.5rem;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.82rem;font-weight:600;transition:all .2s;display:flex}.presenter-trigger-btn:hover{color:#fff;background:linear-gradient(135deg,#6366f159,#a855f759);border-color:#818cf8;transform:translateY(-1px);box-shadow:0 0 15px #6366f14d}.audience-viewport{z-index:2000;color:#fff;-webkit-user-select:none;user-select:none;cursor:default;background-color:#000;justify-content:center;align-items:center;width:100vw;height:100vh;transition:cursor .3s;display:flex;position:fixed;inset:0;overflow:hidden}.audience-viewport.idle{cursor:none}.audience-canvas{background-color:#000;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.audience-image{object-fit:contain;pointer-events:none;width:auto;max-width:100vw;height:auto;max-height:100vh;animation:.35s cubic-bezier(.16,1,.3,1) audienceImageFadeIn;display:block;box-shadow:0 0 80px #000c}@keyframes audienceImageFadeIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}.audience-blank-screen{opacity:.35;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:1rem;transition:opacity .5s;display:flex}.audience-blank-screen.unauthorized{opacity:.85;pointer-events:auto}.audience-retry-btn{color:#f1f5f9;cursor:pointer;pointer-events:auto;background:#ffffff1a;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:.5rem;margin-top:.5rem;padding:.45rem 1rem;font-size:.825rem;font-weight:500;transition:all .2s;display:inline-flex}.audience-retry-btn:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.audience-retry-btn:active{transform:translateY(0)}.audience-viewport.idle .audience-blank-screen{opacity:.15}.audience-blank-icon{color:#94a3b8;background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:flex}.audience-blank-text{letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;font-size:.95rem;font-weight:500}.audience-controls{-webkit-backdrop-filter:blur(12px);opacity:1;visibility:visible;z-index:2010;background:#0f172aa6;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:.75rem;padding:.4rem .6rem;transition:opacity .4s,visibility .4s,transform .4s;display:flex;position:absolute;top:1.25rem;right:1.25rem;box-shadow:0 8px 32px #00000080}.audience-viewport.idle .audience-controls{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px)}.audience-status-pill{letter-spacing:.02em;color:#cbd5e1;background:#0006;border-radius:9999px;align-items:center;gap:.45rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.audience-status-pill.connected{color:#86efac}.audience-status-pill.connecting,.audience-status-pill.disconnected,.audience-status-pill.unauthorized{color:#fca5a5}.audience-status-dot{background-color:currentColor;border-radius:50%;width:7px;height:7px}.audience-status-pill.connected .audience-status-dot{box-shadow:0 0 8px #22c55e}.audience-status-pill.connecting .audience-status-dot,.audience-status-pill.disconnected .audience-status-dot{animation:1.5s ease-out infinite pulse-ring}.audience-status-pill.unauthorized .audience-status-dot{background-color:#ef4444;box-shadow:0 0 6px #ef4444}.audience-btn-icon{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff0d;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;transition:all .2s;display:flex}.audience-btn-icon:hover{color:#fff;background:#fff3;transform:scale(1.08)}.audience-btn-icon.close-btn:hover{color:#fee2e2;background:#ef444466;border-color:#ef444499}.audience-trigger-btn{color:#a7f3d0;cursor:pointer;background:linear-gradient(135deg,#10b98133,#06b6d433);border:1px solid #10b98166;border-radius:.5rem;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.82rem;font-weight:600;transition:all .2s;display:flex}.audience-trigger-btn:hover{color:#fff;background:linear-gradient(135deg,#10b98159,#06b6d459);border-color:#34d399;transform:translateY(-1px);box-shadow:0 0 15px #10b9814d}.header-live-badge{border-radius:var(--radius-full);color:#00c278;letter-spacing:.3px;background:#00c2781f;border:1px solid #00c2784d;align-items:center;gap:.4rem;margin-left:.5rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;animation:.3s ease-out fadeIn;display:inline-flex}.live-dot{background-color:#00c278;border-radius:50%;width:7px;height:7px;animation:2s ease-out infinite pulse-ring;box-shadow:0 0 8px #00c278cc}.header-start-show-btn{border-radius:var(--radius-sm);background:var(--ig-gradient);color:#fff;cursor:pointer;transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;align-items:center;gap:.4rem;padding:.45rem .95rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #dc274359}.header-start-show-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.header-start-show-btn:disabled{opacity:.5;cursor:not-allowed}.header-end-show-btn{border-radius:var(--radius-sm);color:#ff6b77;cursor:pointer;transition:all var(--transition-fast);background:#ed495626;border:1px solid #ed495659;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:inline-flex}.header-end-show-btn:hover:not(:disabled){background:#ed495647;border-color:#ed49568c}.header-end-show-btn:disabled{opacity:.5;cursor:not-allowed}.header-past-shows-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);background:#121212;align-items:center;gap:.45rem;padding:.45rem .85rem;font-family:inherit;font-size:.8125rem;font-weight:600;display:inline-flex}.header-past-shows-btn:hover{background:#262626;border-color:#363636}.show-status-banner{text-align:center;-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#121212b3;flex-direction:column;justify-content:center;align-items:center;max-width:680px;margin:2rem auto;padding:4.5rem 2rem;animation:.4s ease-out fadeIn;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 40px #0009}.banner-glow{filter:blur(40px);pointer-events:none;background:radial-gradient(circle,#dc274326 0%,#0095f614 50%,#0000 70%);border-radius:50%;width:280px;height:280px;position:absolute;top:15%;left:50%;transform:translate(-50%)}.banner-content{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.banner-icon-wrapper{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;display:flex;position:relative}.waiting-icon{color:#ff7686;background:linear-gradient(135deg,#f0943333,#dc274333);border:1px solid #dc274366}.pulse-aura{border:2px dashed #dc274359;border-radius:50%;animation:20s linear infinite spinSlow;position:absolute;inset:-8px}.pulsing-radio{animation:2.5s ease-in-out infinite pulseScale}.host-icon{color:#0095f6;background:linear-gradient(135deg,#0095f633,#bc188833);border:1px solid #0095f666}.banner-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.75rem;font-size:1.75rem;font-weight:700}.banner-description{color:var(--text-secondary);max-width:480px;margin-bottom:2rem;font-size:.95rem;line-height:1.55}.banner-error-msg{border-radius:var(--radius-sm);color:#ff6b77;background:#ed495626;border:1px solid #ed495659;max-width:480px;margin-bottom:1.5rem;padding:.6rem 1rem;font-size:.85rem}.banner-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.banner-refresh-btn{border-radius:var(--radius-full);background:var(--ig-gradient);color:#fff;cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);border:none;align-items:center;gap:.6rem;padding:.75rem 1.75rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex;box-shadow:0 4px 16px #dc274366}.banner-refresh-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #dc27438c}.banner-refresh-btn:active:not(:disabled){transform:translateY(0)}.banner-refresh-btn:disabled{opacity:.65;cursor:not-allowed}.banner-primary-btn{border-radius:var(--radius-sm);background:var(--ig-gradient);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:.55rem;padding:.75rem 1.6rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex;box-shadow:0 4px 16px #dc274366}.banner-primary-btn:hover:not(:disabled){opacity:.95;transform:translateY(-2px)}.banner-primary-btn:disabled{opacity:.6;cursor:not-allowed}.banner-secondary-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);background:#1e1e1e;align-items:center;gap:.55rem;padding:.75rem 1.4rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex}.banner-secondary-btn:hover{background:#2a2a2a;border-color:#3e3e3e}.past-shows-overlay{z-index:1000}.past-shows-modal-content{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#121212;flex-direction:column;width:90%;max-width:640px;max-height:85vh;animation:.25s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;overflow:hidden;box-shadow:0 16px 48px #000c}.past-shows-header{border-bottom:1px solid var(--border-subtle);background:#0006;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.past-shows-title{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:700}.past-shows-subtitle{color:var(--text-secondary);margin:.25rem 0 0;font-size:.8125rem}.past-shows-close-btn{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.4rem;display:flex}.past-shows-close-btn:hover{color:var(--text-primary);background:#ffffff1a}.past-shows-body{max-height:calc(85vh - 80px);padding:1.25rem 1.5rem;overflow-y:auto}.past-shows-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;font-size:.875rem;display:flex}.past-shows-error{border-radius:var(--radius-sm);color:#ff6b77;background:#ed49561f;border:1px solid #ed49564d;align-items:center;gap:.75rem;padding:1rem;font-size:.875rem;display:flex}.past-shows-retry-btn{color:#fff;border-radius:var(--radius-xs);cursor:pointer;background:#ed495640;border:1px solid #ed495666;margin-left:auto;padding:.35rem .75rem;font-size:.8125rem}.past-shows-empty{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:3.5rem 1rem;display:flex}.past-shows-empty .empty-icon{opacity:.5;margin-bottom:.75rem}.past-shows-empty h3{color:var(--text-primary);margin-bottom:.25rem;font-size:1.1rem}.past-shows-empty p{max-width:320px;font-size:.875rem}.past-shows-list{flex-direction:column;gap:.85rem;display:flex}.past-show-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast), transform var(--transition-fast);background:#181818;padding:1rem 1.25rem}.past-show-card:hover{border-color:#383838}.show-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.show-card-date-group{align-items:center;gap:.5rem;display:flex}.date-icon{color:#0095f6}.show-date-text{color:var(--text-primary);font-size:.9375rem;font-weight:600}.show-card-badges{align-items:center;gap:.5rem;display:flex}.badge-live{color:#00c278;border-radius:var(--radius-full);background:#00c27826;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.badge-ended{color:var(--text-muted);border-radius:var(--radius-full);background:#ffffff0f;padding:.15rem .5rem;font-size:.75rem}.show-duration{color:var(--text-secondary);align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.show-stats-grid{border-radius:var(--radius-sm);background:#0f0f0f;border:1px solid #ffffff0a;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:.75rem;display:grid}.stat-item{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.stat-label{color:var(--text-secondary);align-items:center;gap:.3rem;margin-bottom:.2rem;font-size:.75rem;display:flex}.stat-value{color:var(--text-primary);font-size:1.15rem;font-weight:700}.spin-icon{animation:1s linear infinite spinSlow}.fill-icon{fill:currentColor}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseScale{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.app-footer{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding:1.75rem 0 2.25rem;display:flex}.footer-brand-group{align-items:center;gap:.65rem;display:flex}.footer-icon-wrapper{background:var(--ig-gradient);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #dc274340}.footer-text-group{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.footer-brand-title{font-family:var(--font-brand);color:var(--text-secondary);font-size:1.5rem;font-weight:400;line-height:1}.footer-separator{color:var(--border-highlight);font-size:.75rem}.footer-tagline{color:var(--text-muted);letter-spacing:.01em;font-size:.8125rem}.footer-actions{align-items:center;gap:.75rem;display:flex}.lang-picker-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition-fast);background:#ffffff0a;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.lang-picker-pill:hover{background:#ffffff14;border-color:#ffffff26}.lang-picker-icon{color:var(--text-muted);flex-shrink:0}.lang-btn{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;padding:.1rem .2rem;font-family:inherit;font-size:.75rem;font-weight:600;line-height:1}.lang-btn:hover{color:var(--text-primary)}.lang-btn.active{color:var(--text-primary);text-shadow:0 0 8px #ffffff59;font-weight:700}.lang-sep{color:var(--border-subtle);-webkit-user-select:none;user-select:none;font-size:.7rem}.footer-moderator-badge{border-radius:var(--radius-full);color:#00c278;letter-spacing:.02em;background:#00c2781a;border:1px solid #00c27840;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.footer-badge-icon{color:#00c278}@media (width<=640px){.app-footer{text-align:center;flex-direction:column;justify-content:center;gap:1rem;padding:1.5rem 0 2rem}.footer-brand-group,.footer-actions{justify-content:center}}
