:root{--bg:#0f1720;--panel:#17212b;--border:#2a3948;--text:#e6edf3;--muted:#9fb0c0;--accent:#3b82f6;--accent-text:#fff;--error:#f87171;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}.page{max-width:640px;margin:0 auto;padding:48px 20px 80px}h1{font-size:1.6rem;margin:0 0 8px}.subtle{color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-top:24px}.field{margin-bottom:18px}.field label{display:block;font-size:.9rem;margin-bottom:6px}.field .req{color:var(--accent)}.field .opt{color:var(--muted);font-weight:400}input[type=email],input[type=number],input[type=tel],input[type=text]{width:100%;padding:10px 12px;background:#0f1720;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem}input:focus{outline:none;border-color:var(--accent)}.row{display:flex;gap:14px}.row .field{flex:1 1}.consent{display:flex;align-items:flex-start;gap:10px;margin:22px 0;font-size:.92rem}.consent input{margin-top:3px}.consent a{color:var(--accent)}button.submit{width:100%;padding:12px 16px;background:var(--accent);color:var(--accent-text);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}button.submit:disabled{opacity:.45;cursor:not-allowed}.note{margin-top:14px;text-align:center}.limits,.note{font-size:.85rem;color:var(--muted)}.limits{margin-top:4px}.error-title{color:var(--error)}input[type=file]{width:100%;color:var(--muted);font-size:.9rem}.filelist{list-style:none;margin:12px 0 0;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.filelist li{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;font-size:.88rem;border-top:1px solid var(--border)}.filelist li:first-child{border-top:none}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-status{flex:0 0 auto;color:var(--muted)}.file-done .file-status{color:#4ade80}.file-error .file-status{color:var(--error)}.file-duplicate .file-status{color:#fbbf24}.submit-error{color:var(--error);font-size:.9rem;margin:14px 0 0}