*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f9fa;min-height:100vh;padding:24px;color:#1a1a1a;position:relative}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px);pointer-events:none;z-index:0}#root{max-width:1000px;margin:0 auto;position:relative;z-index:1}.container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:32px;margin-bottom:16px;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.container:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#667eea}h1{color:#111827;font-size:28px;font-weight:700;margin-bottom:24px;letter-spacing:-.025em}h2{color:#111827;font-size:20px;font-weight:600;margin-bottom:16px;letter-spacing:-.025em;display:flex;align-items:center;gap:8px}h2:before{content:"";width:4px;height:20px;background:#667eea;border-radius:2px}.upload-area{border:2px dashed #d1d5db;border-radius:8px;padding:48px 24px;text-align:center;background:#fafbfc;transition:all .3s ease;cursor:pointer;position:relative}.upload-area:hover{border-color:#667eea;background:#f5f7ff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.upload-area.dragover{border-color:#667eea;background:#eff2ff;border-width:3px;transform:scale(1.01)}.upload-icon{font-size:40px;color:#6b7280;margin-bottom:16px;opacity:.6}.upload-text{color:#374151;font-size:16px;font-weight:500;margin-bottom:8px}.upload-hint{color:#6b7280;font-size:14px}.progress-container{margin-top:20px;display:none}.progress-container.active{display:block}.progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:#3b82f6;transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:11px}.progress-text{text-align:center;color:#6b7280;font-size:13px}.error-message{background:#fef2f2;color:#991b1b;padding:12px 16px;border-radius:6px;margin-top:16px;border:1px solid #fecaca;font-size:14px}.success-message{background:#f0fdf4;color:#166534;padding:12px 16px;border-radius:6px;margin-top:16px;border:1px solid #bbf7d0;font-size:14px}.file-list{margin-top:0}.file-item{display:flex;flex-direction:column;padding:16px;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;background:#fff;transition:all .2s ease;position:relative;overflow:hidden}.file-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#667eea;opacity:0;transition:opacity .2s ease}.file-item-content{display:flex;align-items:center;justify-content:space-between;width:100%}.file-item:hover{border-color:#d1d5db;box-shadow:0 4px 12px #667eea1a;transform:translate(2px)}.file-item:hover:before{opacity:1}.file-item.expired{opacity:.7;background:#fef2f2;border-color:#fecaca}.file-info{flex:1;min-width:0}.file-name{font-weight:500;color:#111827;margin-bottom:8px;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:13px;color:#6b7280;display:flex;gap:16px;flex-wrap:wrap}.file-meta span{display:inline-flex;align-items:center}.file-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn-primary{background:#667eea;color:#fff;box-shadow:0 2px 4px #667eea4d}.btn-primary:hover{background:#5568d3;box-shadow:0 4px 8px #667eea66;transform:translateY(-1px)}.btn-primary:active{background:#4c5bc0;transform:translateY(0)}.btn-primary:disabled{background:#d1d5db;cursor:not-allowed}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-secondary:active{background:#f3f4f6}.expiration-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.expiration-badge.expired{background:#fee2e2;color:#991b1b}.expiration-badge.warning{background:#fef3c7;color:#92400e}.expiration-badge.ok{background:#d1fae5;color:#065f46}.expiration-badge.permanent{background:#dbeafe;color:#1e40af}.loading{text-align:center;padding:32px;color:#6b7280;font-size:14px}.empty-state{text-align:center;padding:48px 24px;color:#9ca3af}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.4}.footer{text-align:center;padding:32px 24px;color:#6b7280;font-size:13px;position:relative;z-index:1}.footer a{color:#667eea;text-decoration:none;font-weight:500;transition:all .2s ease}.footer a:hover{color:#5568d3;text-decoration:underline}.brand-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;border-radius:20px;border:1px solid #e5e7eb;font-size:12px;font-weight:500;color:#374151;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.brand-badge:hover{border-color:#d1d5db;box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.brand-badge strong{color:#667eea;font-weight:600}.download-link-box{margin-top:12px;padding:12px;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb;font-size:12px}.download-link-box strong{color:#374151;display:block;margin-bottom:6px;font-size:12px;font-weight:500}.download-link-box a{color:#3b82f6;text-decoration:none;word-break:break-all;display:inline-block;font-family:Monaco,Menlo,Courier New,monospace;font-size:11px}.download-link-box a:hover{text-decoration:underline;color:#2563eb}
