*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--bg:#0c0e13;--surface:#14161d;--surface-hover:#1a1d27;--surface-active:#1f2230;--border:#252835;--border-hover:#3a3e52;--text:#e4e6f0;--text-muted:#7a7f96;--text-dim:#4e5268;--accent:#6c8aff;--accent-soft:rgba(108,138,255,0.12);--accent-glow:rgba(108,138,255,0.25);--danger:#ff6b6b;--success:#5eead4;--radius:10px;--radius-lg:16px}html{font-size:15px}body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}body::before{content:'';position:fixed;top:-40%;left:-20%;width:80vw;height:80vw;background:radial-gradient(circle,rgba(108,138,255,0.06) 0%,transparent 65%);pointer-events:none;z-index:0}body::after{content:'';position:fixed;bottom:-30%;right:-15%;width:60vw;height:60vw;background:radial-gradient(circle,rgba(94,234,212,0.04) 0%,transparent 60%);pointer-events:none;z-index:0}#login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;background:var(--bg);transition:opacity 0.5s ease,visibility 0.5s ease}#login-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.login-card{width:380px;padding:48px 40px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;position:relative;animation:loginFloat 0.8s ease-out}@keyframes loginFloat{from{opacity:0;transform:translateY(24px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}.login-icon{width:56px;height:56px;margin:0 auto 24px;border-radius:14px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;border:1px solid rgba(108,138,255,0.15)}.login-icon svg{width:26px;height:26px;color:var(--accent)}.login-card h1{font-size:1.35rem;font-weight:600;margin-bottom:6px;letter-spacing:-0.02em}.login-card p{color:var(--text-muted);font-size:0.87rem;margin-bottom:28px}.password-field{position:relative;margin-bottom:16px}.password-field input{width:100%;padding:12px 44px 12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:0.9rem;outline:none;transition:border-color 0.2s}.password-field input:focus{border-color:var(--accent)}.password-field input.error{border-color:var(--danger);animation:shake 0.4s ease}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}.toggle-vis{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-dim);cursor:pointer;padding:4px;transition:color 0.2s}.toggle-vis:hover{color:var(--text-muted)}.login-btn{width:100%;padding:12px;background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.9rem;border:none;border-radius:var(--radius);cursor:pointer;transition:background 0.2s,box-shadow 0.2s}.login-btn:hover{background:#5a7aef;box-shadow:0 4px 24px var(--accent-glow)}.error-msg{color:var(--danger);font-size:0.8rem;margin-top:12px;opacity:0;transition:opacity 0.3s}.error-msg.visible{opacity:1}#app{display:none;max-width:960px;margin:0 auto;padding:40px 24px 0;position:relative;z-index:1;animation:fadeUp 0.6s ease-out;height:100vh;flex-direction:column}#app.active{display:flex}@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;flex-shrink:0}.app-header h1{font-size:1.6rem;font-weight:700;letter-spacing:-0.03em}.app-header h1 span{color:var(--accent)}.file-count{font-size:0.82rem;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);padding:6px 14px;border-radius:20px;font-weight:500}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center;flex-shrink:0}.search-box{flex:1;min-width:220px;position:relative}.search-box svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-dim);pointer-events:none}.search-box input{width:100%;padding:11px 16px 11px 42px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.9rem;outline:none;transition:border-color 0.2s,background 0.2s}.search-box input:focus{border-color:var(--accent);background:var(--surface-hover)}.search-box input::placeholder{color:var(--text-dim)}.filter-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center;flex-shrink:0}.filter-row label{font-size:0.82rem;color:var(--text-muted);font-weight:500;white-space:nowrap}.date-input{padding:9px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.85rem;outline:none;transition:border-color 0.2s,background 0.2s;color-scheme:dark}.date-input:focus{border-color:var(--accent);background:var(--surface-hover)}.date-group{display:flex;align-items:center;gap:8px}.clear-dates-btn{padding:9px 14px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.82rem;cursor:pointer;transition:all 0.2s;white-space:nowrap}.clear-dates-btn:hover{border-color:var(--border-hover);color:var(--text-muted)}.sort-btn,.select-all-btn{padding:11px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:'DM Sans',sans-serif;font-size:0.85rem;font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:6px;white-space:nowrap}.sort-btn:hover,.select-all-btn:hover{border-color:var(--border-hover);color:var(--text);background:var(--surface-hover)}.sort-btn svg,.select-all-btn svg{width:16px;height:16px}.batch-bar{display:none;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--accent-soft);border:1px solid rgba(108,138,255,0.2);border-radius:var(--radius);margin-bottom:16px;animation:fadeUp 0.3s ease-out;flex-shrink:0}.batch-bar.active{display:flex}.batch-bar-info{display:flex;align-items:center;gap:10px;font-size:0.88rem;font-weight:500;color:var(--accent)}.batch-bar-actions{display:flex;gap:8px}.btn-zip{padding:8px 18px;background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.84rem;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background 0.2s,box-shadow 0.2s}.btn-zip:hover{background:#5a7aef;box-shadow:0 4px 20px var(--accent-glow)}.btn-zip:disabled{opacity:0.5;cursor:not-allowed}.btn-zip svg{width:16px;height:16px}.btn-clear{padding:8px 14px;background:transparent;border:1px solid rgba(108,138,255,0.25);border-radius:8px;color:var(--accent);font-family:'DM Sans',sans-serif;font-size:0.84rem;cursor:pointer;transition:background 0.2s}.btn-clear:hover{background:rgba(108,138,255,0.08)}.file-list-wrapper{flex:1;min-height:0;overflow-y:auto;padding-bottom:48px;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}.file-list-wrapper::-webkit-scrollbar{width:6px}.file-list-wrapper::-webkit-scrollbar-track{background:transparent}.file-list-wrapper::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}.file-list-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.file-list{display:flex;flex-direction:column;gap:4px}.file-item{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--surface);border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all 0.15s ease;position:relative}.file-item:hover{background:var(--surface-hover);border-color:var(--border)}.file-item.selected{background:var(--accent-soft);border-color:rgba(108,138,255,0.2)}.file-checkbox{width:20px;height:20px;border:2px solid var(--border-hover);border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.15s}.file-item.selected .file-checkbox{background:var(--accent);border-color:var(--accent)}.file-checkbox svg{width:13px;height:13px;color:#fff;opacity:0;transition:opacity 0.15s}.file-item.selected .file-checkbox svg{opacity:1}.file-icon{width:38px;height:38px;border-radius:8px;background:linear-gradient(135deg,#ff4444 0%,#cc2233 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0}.file-icon span{font-family:'JetBrains Mono',monospace;font-size:0.6rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:0.04em}.file-info{flex:1;min-width:0}.file-name{font-weight:500;font-size:0.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color 0.2s}.file-item:hover .file-name{color:var(--accent)}.file-meta{font-size:0.78rem;color:var(--text-dim);margin-top:2px;display:flex;gap:12px}.file-download{background:none;border:1px solid var(--border);border-radius:8px;padding:7px 14px;color:var(--text-muted);font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all 0.2s;flex-shrink:0}.file-download:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.file-download svg{width:14px;height:14px}.state-msg{text-align:center;padding:64px 24px;color:var(--text-dim)}.state-msg svg{width:48px;height:48px;margin-bottom:16px;color:var(--text-dim);opacity:0.5}.state-msg h3{font-size:1.05rem;color:var(--text-muted);margin-bottom:6px;font-weight:600}.state-msg p{font-size:0.85rem}.progress-overlay{display:none;position:fixed;inset:0;background:rgba(12,14,19,0.85);backdrop-filter:blur(8px);z-index:200;align-items:center;justify-content:center}.progress-overlay.active{display:flex}.progress-card{width:360px;padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center}.progress-card h3{font-size:1rem;margin-bottom:20px;font-weight:600}.progress-track{width:100%;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;width:0%;background:var(--accent);border-radius:3px;transition:width 0.3s ease}.progress-label{font-size:0.82rem;color:var(--text-muted)}.site-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;padding:10px 24px;font-size:0.8rem;letter-spacing:0.04em;z-index:1;pointer-events:none;background-color:#222}@media (max-width:600px){.toolbar{flex-direction:column}.search-box{min-width:unset}.app-header{flex-direction:column;gap:12px;align-items:flex-start}.file-download span{display:none}.batch-bar{flex-direction:column;gap:12px;text-align:center}}