*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#1a1f2e;color:#e0e0e0;min-height:100vh}.gate-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.gate-card{background:#242938;border:1px solid #3a3f4e;border-radius:12px;padding:2.5rem 2rem;max-width:360px;width:100%;text-align:center}.gate-icon{font-size:3rem;margin-bottom:.5rem}.gate-card h1{font-size:1.3rem;color:#fff;margin-bottom:.25rem}.subtitle{color:#6b9f3b;font-size:.85rem;margin-bottom:1rem}.gate-info{color:#888;font-size:.85rem;margin-bottom:1.5rem}.gate-card input{width:100%;padding:.75rem 1rem;border:1px solid #3a3f4e;border-radius:8px;background:#1a1f2e;color:#fff;font-size:1rem;margin-bottom:1rem}.gate-card input:focus{outline:none;border-color:#6b9f3b}.gate-card button,.upload-btn,.download-btn{display:block;width:100%;padding:.75rem;background:#6b9f3b;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s;text-align:center;text-decoration:none}.gate-card button:hover,.upload-btn:hover:not(:disabled),.download-btn:hover{background:#5a8a32}.gate-card button:disabled,.upload-btn:disabled{opacity:.4;cursor:not-allowed}.error{color:#e74c3c;font-size:.85rem;margin-bottom:1rem}.upload-container{min-height:100vh;display:flex;flex-direction:column}header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#242938;border-bottom:1px solid #3a3f4e}.header-left{display:flex;align-items:center;gap:.75rem}.logo{font-size:1.5rem}header h1{font-size:1.1rem;color:#fff}.logout-btn{background:none;border:1px solid #3a3f4e;color:#888;padding:.4rem .8rem;border-radius:6px;cursor:pointer;font-size:.8rem}.logout-btn:hover{border-color:#e74c3c;color:#e74c3c}main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem}.workspace{max-width:600px;width:100%}.upload-section{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.browser-upload-btn{padding:.5rem 1rem;background:#3a3f4e;color:#ccc;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .2s}.browser-upload-btn:hover{background:#4a4f5e}.refresh-btn{background:none;border:1px solid #3a3f4e;color:#888;padding:.4rem .7rem;border-radius:6px;cursor:pointer;font-size:.85rem}.refresh-btn:hover{border-color:#6b9f3b;color:#6b9f3b}.hint{color:#666;font-size:.75rem}.hint code{background:#1a1f2e;padding:.1rem .3rem;border-radius:3px;font-size:.7rem}.file-section{background:#242938;border:1px solid #3a3f4e;border-radius:10px;padding:1rem;margin-bottom:1rem}.file-section h2{font-size:.85rem;color:#aaa;margin-bottom:.75rem;font-weight:500}.empty{color:#555;font-size:.8rem;font-style:italic}.file-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-radius:6px;cursor:pointer;transition:background .15s;margin-bottom:.3rem}.file-item:hover{background:#2a2f3e}.file-item.selected{background:#2d3a28;border:1px solid #6b9f3b}.file-icon{font-size:1.1rem}.file-name{flex:1;font-size:.85rem;word-break:break-all}.file-size{color:#666;font-size:.75rem;white-space:nowrap}.status-card{background:#242938;border:1px solid #3a3f4e;border-radius:12px;padding:2.5rem 2rem;max-width:400px;width:100%;text-align:center;margin-top:2rem}.status-card p{margin-bottom:1rem}.spinner{width:40px;height:40px;border:3px solid #3a3f4e;border-top-color:#6b9f3b;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{width:100%;height:6px;background:#3a3f4e;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#6b9f3b;transition:width .3s}.check-icon{width:50px;height:50px;background:#6b9f3b;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem}.download-btn{margin-bottom:.75rem}.reset-btn{width:100%;padding:.7rem;background:none;border:1px solid #3a3f4e;color:#aaa;border-radius:8px;font-size:.9rem;cursor:pointer}.reset-btn:hover{border-color:#6b9f3b;color:#6b9f3b}.error-card{border-color:#e74c3c}@media(max-width:480px){.gate-card{padding:2rem 1.5rem}header h1{font-size:.95rem}.upload-section{flex-direction:column;align-items:flex-start}}
