*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light dark;--acc: #4d6bfe;--acc-hover: #3f5de0;--acc-light: #eef2ff;--acc-soft: rgba(77, 107, 254, .12);--bg: #f7f8fa;--surface: #ffffff;--surface-glass: rgba(255, 255, 255, .86);--surface-2: #f3f4f6;--border: #e6e8ef;--text: #202124;--text-secondary: #747783;--text-muted: #a1a5b1;--success: #22c55e;--success-bg: #f0fdf4;--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--warning: #f59e0b;--warning-strong: #ca8a04;--warning-soft: rgba(250, 204, 21, .2);--warning-bg: #fefce8;--warning-border: #fde047;--warning-text: #a16207;--radius: 12px;--radius-sm: 9px;--shadow: 0 8px 24px rgba(32, 33, 36, .06);--shadow-md: 0 8px 20px rgba(77, 107, 254, .16);--shadow-overlay: 0 8px 32px rgba(0, 0, 0, .18);--transition: .2s cubic-bezier(.4, 0, .2, 1);--orb-1: rgba(77, 107, 254, .14);--orb-2: rgba(124, 107, 254, .1);--orb-3: rgba(34, 211, 238, .09)}@media(prefers-color-scheme:dark){:root{--acc: #6a83ff;--acc-hover: #7f95ff;--acc-light: rgba(77, 107, 254, .17);--acc-soft: rgba(106, 131, 255, .2);--bg: #0f1117;--surface: #171a21;--surface-glass: rgba(23, 26, 33, .82);--surface-2: #232834;--border: #272c38;--text: #e8eaf1;--text-secondary: #9aa1b0;--text-muted: #6a7180;--success: #34d399;--success-bg: rgba(52, 211, 153, .12);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .14);--warning: #fbbf24;--warning-strong: #fbbf24;--warning-soft: rgba(251, 191, 36, .18);--warning-bg: rgba(250, 204, 21, .07);--warning-border: rgba(250, 204, 21, .35);--warning-text: #fbbf24;--shadow: 0 8px 24px rgba(0, 0, 0, .35);--shadow-md: 0 8px 20px rgba(0, 0, 0, .45);--shadow-overlay: 0 8px 32px rgba(0, 0, 0, .5);--orb-1: rgba(90, 118, 255, .2);--orb-2: rgba(139, 118, 255, .14);--orb-3: rgba(34, 211, 238, .11)}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.ambient .orb{position:absolute;border-radius:50%;filter:blur(72px);will-change:transform}.ambient .orb-a{width:52vmax;height:52vmax;top:-18vmax;left:-14vmax;background:radial-gradient(circle at center,var(--orb-1),transparent 65%);animation:orb-drift-a 46s ease-in-out infinite alternate}.ambient .orb-b{width:58vmax;height:58vmax;top:24vmax;right:-20vmax;background:radial-gradient(circle at center,var(--orb-2),transparent 65%);animation:orb-drift-b 58s ease-in-out infinite alternate}.ambient .orb-c{width:46vmax;height:46vmax;bottom:-16vmax;left:28vmax;background:radial-gradient(circle at center,var(--orb-3),transparent 65%);animation:orb-drift-c 52s ease-in-out infinite alternate}@keyframes orb-drift-a{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(6vmax,4vmax,0) scale(1.12)}}@keyframes orb-drift-b{0%{transform:translateZ(0) scale(1.08)}to{transform:translate3d(-5vmax,-6vmax,0) scale(.94)}}@keyframes orb-drift-c{0%{transform:translateZ(0) scale(.96)}to{transform:translate3d(4vmax,-5vmax,0) scale(1.1)}}@media(prefers-reduced-motion:reduce){.ambient .orb{animation:none}}.topbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--surface-glass)}.topbar-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between}.logo-area{display:flex;align-items:center;gap:10px}.logo-icon{width:28px;height:28px;color:var(--acc)}.title{font-size:20px;font-weight:650;letter-spacing:-.3px}.nav-link{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:999px;font-size:14px;font-weight:550;color:var(--acc);background:var(--acc-light);text-decoration:none;transition:all var(--transition);white-space:nowrap}.nav-actions{display:flex;align-items:center;gap:18px}.nav-link:hover{background:var(--acc-soft);transform:translateY(-1px)}.nav-link:active{transform:scale(.97)}.main-content{max-width:1200px;margin:0 auto;padding:32px 24px 60px}.upload-section{margin-bottom:36px}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:48px 24px;text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface)}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--acc);background:var(--acc-light)}.drop-icon{color:var(--text-muted);margin-bottom:12px}.drop-zone.drag-over .drop-icon{color:var(--acc)}.drop-text{font-size:16px;color:var(--text-secondary)}.drop-text .browse{color:var(--acc);font-weight:550;text-decoration:underline;text-underline-offset:3px}.drop-hint{margin-top:8px;font-size:13px;color:var(--text-muted)}input[type=file]{display:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:14px 28px;font-size:16px;font-weight:600;color:#fff;background:var(--acc);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);letter-spacing:.3px}.btn-primary:hover:not(:disabled){background:var(--acc-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.status-bar{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;background:var(--surface);border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary);border:1px solid var(--border)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.status-bar.uploading .status-dot{background:var(--acc);animation:pulse 1.2s ease-in-out infinite}.status-bar.done .status-dot{background:var(--success)}.status-bar.error .status-dot{background:var(--danger)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}.gallery{display:grid;gap:20px}.gallery:empty{display:none}.gallery-card{background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:all var(--transition);animation:fadeUp .35s ease-out both}.gallery-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.card-img-wrap,.card-preview{position:relative;width:100%;background:var(--surface-2);overflow:hidden}.card-img-wrap img,.card-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-card:hover .card-img-wrap img,.gallery-card:hover .card-preview img{transform:scale(1.04)}.card-progress{position:absolute;inset:0;background:#00000073;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition)}.card-progress.active{opacity:1}.card-progress-text{color:#fff;font-size:14px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card-check{position:absolute;top:10px;right:10px;width:28px;height:28px;background:var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.5);transition:all var(--transition)}.card-check.show{opacity:1;transform:scale(1)}.card-check svg{width:16px;height:16px;color:#fff}.card-info{padding:14px 16px}.card-name{font-size:14px;font-weight:550;word-break:break-all;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{margin-top:6px;font-size:12px;color:var(--text-secondary)}.meta-ok{color:var(--success);font-weight:550}.meta-err{color:var(--danger);font-weight:550;word-break:break-all}.card-link{width:100%;margin-top:10px;padding:8px 10px;font-size:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text-secondary);outline:none;cursor:pointer;transition:all var(--transition)}.card-link:focus{border-color:var(--acc)}.card-link.copied{border-color:var(--success);background:var(--success-bg)}.empty-state{text-align:center;padding:80px 20px;color:var(--text-muted);font-size:15px}.empty-state svg{margin-bottom:16px}.gallery:not(:empty)+.empty-state{display:none}.repo-section{margin-top:48px;padding-top:36px;border-top:1px solid var(--border)}.repo-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.repo-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:650;color:var(--text)}.repo-title svg{color:var(--acc)}.btn-refresh{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:550;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all var(--transition)}.btn-refresh:hover{border-color:var(--acc);color:var(--acc)}.btn-refresh:active{transform:scale(.96)}.repo-grid{display:grid;gap:16px}.repo-grid:empty{display:none}.repo-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition);animation:fadeUp .35s ease-out both}.repo-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.repo-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--text-muted);font-size:14px}.repo-loading.done{display:none}.spinner-sm{width:22px;height:22px;border:2.5px solid var(--border);border-top-color:var(--acc);border-radius:50%;animation:spin .7s linear infinite}.repo-empty,.repo-error{text-align:center;padding:48px 20px;color:var(--text-muted);font-size:14px}.repo-empty svg{margin-bottom:12px}.btn-retry{background:none;border:none;color:var(--acc);cursor:pointer;font-size:14px;font-weight:550;text-decoration:underline;padding:0}.btn-delete{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:var(--danger-bg);color:var(--danger);cursor:pointer;display:none;align-items:center;justify-content:center;transition:all var(--transition);z-index:5}.btn-delete.show{display:flex}.btn-delete:hover{background:var(--danger);color:#fff;transform:scale(1.1)}.btn-delete:active{transform:scale(.92)}.btn-delete svg{width:14px;height:14px}.btn-delete.deleting{pointer-events:none;opacity:.5;animation:spin .8s linear infinite}.btn-appeal{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:var(--acc-soft);color:var(--acc);cursor:pointer;display:none;align-items:center;justify-content:center;transition:all var(--transition);z-index:5}.btn-appeal.show{display:flex}.btn-appeal:hover{background:var(--acc);color:#fff;transform:scale(1.1)}.btn-appeal:active{transform:scale(.92)}.btn-appeal svg{width:14px;height:14px}.btn-appeal.appealed{background:var(--surface-2);color:var(--text-muted);cursor:default;pointer-events:none}.btn-appeal.appealed:hover{background:var(--surface-2);color:var(--text-muted);transform:none}.btn-appeal-warn{position:absolute;bottom:8px;right:44px;width:28px;height:28px;border-radius:50%;border:none;background:var(--warning-soft);color:var(--warning-strong);cursor:pointer;display:none;align-items:center;justify-content:center;transition:all var(--transition);z-index:5}.btn-appeal-warn.show{display:flex}.btn-appeal-warn:hover{background:var(--warning);color:#fff;transform:scale(1.1)}.btn-appeal-warn:active{transform:scale(.92)}.btn-appeal-warn svg{width:14px;height:14px}.repo-card.unreviewed{border-color:var(--warning);box-shadow:0 0 0 1px var(--warning-soft)}.card-unreviewed-badge{position:absolute;top:8px;left:8px;background:var(--warning);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;z-index:5;letter-spacing:.3px}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--surface);border-radius:var(--radius);padding:28px 24px;max-width:380px;width:90%;box-shadow:var(--shadow-overlay);animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-box h3{font-size:16px;margin-bottom:6px}.modal-box .modal-file{font-size:13px;color:var(--text-secondary);margin-bottom:16px;word-break:break-all}.modal-box textarea{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:8px;outline:none;resize:none;height:64px;font-family:inherit}.modal-box textarea:focus{border-color:var(--acc)}.modal-box .char-count{text-align:right;font-size:12px;color:var(--text-muted);margin-top:4px}.modal-box .char-count.over{color:var(--danger)}.modal-actions{display:flex;gap:10px;margin-top:16px}.modal-actions button{flex:1;padding:10px;border-radius:8px;font-size:14px;font-weight:550;border:none;cursor:pointer;transition:all var(--transition)}.btn-cancel{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.btn-cancel:hover{background:var(--surface-2)}.btn-submit{background:var(--acc);color:#fff}.btn-submit:hover{background:var(--acc-hover)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.btn-reject{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.btn-reject:hover{background:var(--surface-2)}.btn-delete-file{background:var(--danger);color:#fff}.btn-delete-file:hover{background:var(--danger);filter:brightness(.9)}.appeal-note{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:8px;padding:12px;margin:8px 0;font-size:14px;line-height:1.5;word-break:break-all}.appeal-note .appeal-label{color:var(--warning-text);font-weight:600}.lightbox-overlay{background:#000000d1;cursor:zoom-out}.lightbox-box{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:94vw;max-height:94vh}.lightbox-box img{max-width:94vw;max-height:86vh;object-fit:contain;border-radius:8px;background:#ffffff0a;cursor:default}.lightbox-name{color:#fff;font-size:13px;word-break:break-all;text-align:center}.lightbox-close{position:absolute;top:-14px;right:-14px;width:34px;height:34px;border-radius:50%;border:none;background:#fff;color:#333;font-size:20px;line-height:1;cursor:pointer;transition:all var(--transition)}.lightbox-close:hover{background:#e5e7eb;transform:scale(1.08)}@media(max-width:768px){.topbar-inner{padding:0 16px;height:54px}.title{font-size:18px}.logo-icon{width:24px;height:24px}.nav-actions{gap:10px}.nav-link{padding:7px 12px;font-size:13px;gap:5px}.nav-link svg{width:16px;height:16px}.main-content{padding:20px 16px 48px}.drop-zone{padding:36px 16px}.drop-text{font-size:15px}.card-info{padding:10px 12px}.btn-primary{padding:12px 20px;font-size:15px}}
