:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px,#0000000d 0 4px 6px -2px;--sans:system-ui,"Segoe UI",Roboto,sans-serif;--heading:system-ui,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,Consolas,monospace;font:18px/145% var(--sans);letter-spacing:.18px;--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial}}@media (max-width:1024px){:root{font-size:16px}}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (max-width:1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (max-width:1024px){h2{font-size:20px}}p{margin:0}.login-page{display:flex;background-position:50%;background-size:cover;justify-content:center;align-items: center;min-height:100svh}.login-card{position:relative;display:flex;backdrop-filter:blur(6px);opacity:0;background:#0000008c;border-radius:12px;flex-direction:column;align-items: center;padding:2rem 2.5rem;transition:opacity .4s}.qr-icon-btn{position:absolute;cursor:pointer;color:#fff6;background:0 0;border:none;padding:.25rem;transition:color .15s;line-height:0;top:.75rem;right:.75rem}.qr-icon-btn:hover{color:#ffffffe6}.qr-overlay{position:fixed;display:flex;z-index:100;background:#000000bf;justify-content:center;align-items: center;inset:0}.qr-modal{backdrop-filter:blur(10px);display:flex;color:#fff;background:#000000d9;border-radius:16px;flex-direction:column;align-items: center;gap:1rem;width:90%;max-width:320px;padding:2rem}.qr-modal img{box-sizing:border-box;background:#fff;border-radius:8px;width:200px;height:200px;padding:8px}.qr-modal p{color:#ffffffb3;text-align:center;font-size:.9rem}.qr-modal button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.95rem}.btn-cancel{color:#fff9!important;background:0 0!important;border:1px solid #ffffff40!important}.btn-cancel:hover{color:#fff!important;border-color:#ffffff80!important}.connect-code-input{font-family:var(--mono);letter-spacing:.4em;text-align:center;color:#fff;outline:none;box-sizing:border-box;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;width:100%;padding:.5rem;font-size:2rem}.connect-code-input:focus{border-color:var(--accent)}.qr-code-display{font-family:var(--mono);letter-spacing:.4em;color:var(--accent);font-size:1.8rem}.accept-card{min-width:300px}.accept-page{background-image:none;background:var(--bg)}.accept-code{font-family:var(--mono);letter-spacing:.5em;color:#fff;margin:.75rem 0;font-size:2rem}.accept-actions{display:flex;gap:1rem}.btn-accept{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.65rem 1.5rem;font-size:1rem}.btn-reject{color:#e53e3e;cursor:pointer;background:0 0;border:1px solid #e53e3e;border-radius:6px;padding:.65rem 1.5rem;font-size:1rem}.login-card:hover{opacity:1}.login-card h1{color:#fff;margin-bottom:1.5rem}.login-card form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px}.login-card input{color:#fff;outline:none;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;padding:.6rem .8rem;font-size:1rem}.login-card input::placeholder{color:#fff9}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-border)}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.65rem;transition:opacity .15s;font-size:1rem}.login-card button:disabled{opacity:.6;cursor:not-allowed}.form-text{color:#ffffe0;text-align:center;font-size:.875rem}.form-error{color:#e53e3e;text-align:center;font-size:.875rem}.app{display:flex;text-align:left;flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem}.drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;user-select:none;border-radius:10px;padding:2.5rem 1rem;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent);background:var(--accent-bg)}.drop-hint{color:var(--text);margin:0}.progress-wrap{position:relative;background:var(--border);overflow:hidden;border-radius:12px;height:24px}.progress-bar{position:absolute;background:var(--accent);height:100%;transition:width .1s;top:0;left:0}.progress-label{position:absolute;display:flex;color:var(--text-h);justify-content:center;align-items: center;font-size:.8rem;font-weight:500;inset:0}.file-list-wrap{flex:1}.file-list-header{display:flex;justify-content:space-between;align-items: center;margin-bottom:1rem}.file-list-header h1{margin:0;font-size:1.4rem}.logout-btn{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:.35rem .75rem;transition:border-color .15s;font-size:.875rem}.logout-btn:hover{border-color:var(--accent);color:var(--accent)}.file-table{border-collapse:collapse;width:100%;font-size:.95rem}.file-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;font-size:.8rem;font-weight:500}.file-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.6rem .75rem}.file-table tr:hover td{background:var(--accent-bg)}.file-link{color:var(--accent);cursor:pointer;font-size:inherit;text-decoration:underline;text-underline-offset:2px;word-break:break-all;background:0 0;border:none;padding:0}.file-link:hover{opacity:.8}.delete-btn{color:#e53e3e;cursor:pointer;opacity:0;background:0 0;border:none;padding:.2rem .4rem;transition:opacity .15s;font-size:.8rem}tr:hover .delete-btn{opacity:1}.col-size,.col-date{white-space:nowrap;color:var(--text);font-size:.875rem}.status-msg{text-align:center;padding:1rem}.status-msg.error{color:#e53e3e}.status-msg.muted{color:var(--text)}
