*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f0f;--surface: #1a1a1a;--surface2: #222;--border: #2e2e2e;--accent: #6c63ff;--accent-dim: #4c46b3;--text: #f0f0f0;--muted: #888;--success: #4ade80;--danger: #f87171;--radius: 12px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:2rem 1rem 4rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}#app{width:100%;max-width:540px;display:flex;flex-direction:column;gap:2rem}header{text-align:center;padding-top:1rem}.logo{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.logo-icon{font-size:2rem}.logo-text{font-size:2rem;font-weight:700;letter-spacing:-.5px}.tagline{color:var(--muted);font-size:.9rem}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:#1e1c33}.drop-icon{font-size:3rem;margin-bottom:1rem}.drop-label{font-size:1.1rem;font-weight:500;margin-bottom:.4rem}.drop-sub{color:var(--muted);font-size:.9rem}.file-link{color:var(--accent);cursor:pointer}.file-link:hover{text-decoration:underline}.share-panel{display:flex;flex-direction:column;gap:1.5rem}.file-queue{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.file-queue:empty{display:none}.file-item{display:flex;align-items:center;gap:.75rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.75rem;transition:border-color .2s}.file-item.sending{border-color:var(--accent)}.file-item.done{border-color:var(--success);opacity:.8}.file-item.error{border-color:var(--danger)}.file-icon{font-size:1.5rem;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.75rem;color:var(--muted);margin-top:.1rem}.file-status{font-size:1.2rem;flex-shrink:0}.file-progress{font-size:.75rem;color:var(--accent);font-weight:600}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:var(--border);border-color:var(--muted)}.file-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.9rem;color:var(--muted)}.file-info strong{color:var(--text)}.panel-label{display:block;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.link-row{display:flex;gap:.5rem}.link-row input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem;color:var(--text);font-size:.85rem;font-family:monospace;outline:none}.btn-copy{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-copy:hover{background:var(--accent-dim)}.btn-copy.copied{background:var(--success);color:#000}.qr-wrap{text-align:center}.qr-wrap canvas{border-radius:8px;background:#fff;padding:8px;margin-top:.25rem}.status{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--muted)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.status.waiting .status-dot{background:var(--muted);animation:pulse 1.5s ease-in-out infinite}.status.connected .status-dot{background:var(--accent)}.status.sending .status-dot{background:var(--accent);animation:pulse .8s ease-in-out infinite}.status.done .status-dot{background:var(--success)}.status.error .status-dot{background:var(--danger)}.status.connected,.status.sending{color:var(--text)}.status.done{color:var(--success)}.status.error{color:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.progress-wrap{display:flex;flex-direction:column;gap:.4rem}.progress-bar-track{width:100%;height:6px;background:var(--surface2);border-radius:99px;overflow:hidden}.progress-bar{height:100%;width:0%;background:var(--accent);border-radius:99px;transition:width .1s linear}.progress-label{font-size:.8rem;color:var(--muted);text-align:right}.receiver-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.recv-icon{font-size:3rem}.receiver-card h2{font-size:1.3rem;font-weight:600}.recv-sub{color:var(--muted);font-size:.9rem}.btn-download{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s;margin-top:.5rem}.btn-download:hover{background:var(--accent-dim)}footer{text-align:center;color:var(--muted);font-size:.8rem}.hidden{display:none!important}
