@import"https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,700&display=swap";:root{--bg-primary: #f3f2ef;--bg-secondary: #f5f4f1;--bg-tertiary: #eae8e4;--bg-card: #ffffff;--text-primary: #333333;--text-secondary: #555555;--text-muted: #888888;--accent-primary: #7366fe;--accent-secondary: #5a4ed9;--accent-light: #d4d0f4;--accent-gradient: linear-gradient(135deg, #7366fe 0%, #5a4ed9 100%);--success: #22c55e;--error: #ef4444;--warning: #f59e0b;--border-color: #e0ddd8;--border-radius: 12px;--border-radius-sm: 8px;--border-radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .06), 0 4px 8px rgba(0, 0, 0, .04);--transition: all .2s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}.file-ping-app{display:flex;flex-direction:column;min-height:100%;max-width:100%}.file-ping-app.web{min-height:100vh}.file-ping-app.electron{height:100%;overflow:hidden}.app-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:24px 20px;text-align:center;box-shadow:var(--shadow-sm)}.header-content{max-width:600px;margin:0 auto}.logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px}.logo-icon{width:32px;height:32px;color:var(--accent-primary)}.logo-icon svg{width:100%;height:100%}.logo h1{font-family:Inter,sans-serif;font-size:28px;font-weight:700;font-style:italic;color:var(--text-primary);letter-spacing:-.5px}.tagline{color:var(--text-muted);font-size:14px;font-weight:400}.app-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;overflow-y:auto}.electron .app-main{padding:24px 20px;background:var(--bg-primary)}.initial-screen{width:100%;max-width:420px;display:flex;flex-direction:column;gap:28px}.divider{display:flex;align-items:center;gap:16px;color:var(--text-muted);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.drop-zone{background:var(--bg-card);border:2px dashed var(--border-color);border-radius:var(--border-radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.drop-zone:hover{border-color:var(--accent-primary);background:var(--accent-light);box-shadow:var(--shadow-md)}.drop-zone.dragging{border-color:var(--accent-primary);background:var(--accent-light);transform:scale(1.01);box-shadow:var(--shadow-lg)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:16px}.drop-icon{width:56px;height:56px;color:var(--accent-primary);background:var(--accent-light);border-radius:50%;padding:14px;transition:var(--transition)}.drop-zone:hover .drop-icon{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.drop-icon svg{width:100%;height:100%}.drop-text{font-size:16px;font-weight:600;color:var(--text-primary)}.drop-hint{font-size:13px;color:var(--text-muted)}.receive-input{width:100%}.input-group{display:flex;gap:10px}.code-input{flex:1;padding:14px 18px;font-size:16px;font-family:Inter,monospace;font-weight:600;letter-spacing:3px;text-transform:uppercase;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-primary);outline:none;transition:var(--transition);box-shadow:var(--shadow-sm)}.code-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.code-input::placeholder{letter-spacing:normal;text-transform:none;color:var(--text-muted);font-weight:400}.receive-button{display:flex;align-items:center;gap:8px;padding:14px 22px;font-size:14px;font-weight:600;font-family:Inter,sans-serif;color:#fff;background:var(--accent-primary);border:none;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.receive-button:hover:not(:disabled){background:var(--accent-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.receive-button:active:not(:disabled){transform:translateY(0)}.receive-button:disabled{opacity:.5;cursor:not-allowed}.receive-button svg{width:18px;height:18px}.receive-hint{margin-top:14px;font-size:13px;color:var(--text-muted);text-align:center}.sending-screen,.receiving-screen{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:24px}.file-info{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--bg-card);border-radius:var(--border-radius);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-sm)}.file-icon{width:44px;height:44px;color:var(--accent-primary);background:var(--accent-light);border-radius:var(--border-radius-sm);padding:10px}.file-icon svg{width:100%;height:100%}.file-details{flex:1;overflow:hidden}.file-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.file-size{font-size:13px;color:var(--text-muted);margin-top:2px}.receive-code-display{width:100%;text-align:center}.receive-code-display label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:14px;font-weight:500}.code-box{display:flex;align-items:center;justify-content:center;gap:14px;padding:20px 28px;background:var(--bg-card);border-radius:var(--border-radius);border:2px solid var(--accent-light);box-shadow:var(--shadow-sm)}.code-box .code{font-size:32px;font-weight:700;font-family:Inter,monospace;letter-spacing:6px;color:var(--accent-primary)}.copy-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.copy-button:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.copy-button svg{width:18px;height:18px}.copy-link-button{margin-top:14px;padding:12px 24px;font-size:14px;font-weight:600;font-family:Inter,sans-serif;color:var(--accent-primary);background:var(--accent-light);border:none;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition)}.copy-link-button:hover{background:var(--accent-primary);color:#fff}.status-message{display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-size:15px;font-weight:500}.status-message.error{color:var(--error)}.waiting-indicator{display:flex;align-items:center}.pulse-dot{width:10px;height:10px;background:var(--success);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.progress-section{width:100%}.progress-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--accent-primary);border-radius:4px;transition:width .3s ease}.progress-stats{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:13px;color:var(--text-muted);font-weight:500}.timer-notice{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#fef3c7;border:1px solid #fde68a;border-radius:var(--border-radius-sm);color:#92400e;font-size:13px;font-weight:500}.timer-notice svg{width:16px;height:16px;flex-shrink:0}.cancel-button{padding:12px 28px;font-size:14px;font-weight:600;font-family:Inter,sans-serif;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.cancel-button:hover{border-color:var(--error);color:var(--error);background:#fef2f2}.download-icon{width:72px;height:72px;color:var(--accent-primary);background:var(--accent-light);border-radius:50%;padding:18px}.download-icon svg{width:100%;height:100%}.connecting-indicator{display:flex;align-items:center;justify-content:center}.spinner-large{width:28px;height:28px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.receiving-file-info{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--bg-card);border-radius:var(--border-radius-sm);border:1px solid var(--border-color)}.file-icon-small{width:24px;height:24px;color:var(--accent-primary)}.file-icon-small svg{width:100%;height:100%}.receiving-file-info .file-name{font-size:14px;font-weight:500;color:var(--text-primary)}.complete-screen{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.success-icon{width:72px;height:72px;color:var(--success);background:#dcfce7;border-radius:50%;padding:16px}.success-icon svg{width:100%;height:100%}.success-title{font-size:22px;font-weight:700;color:var(--text-primary)}.complete-file-info{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--bg-card);border-radius:var(--border-radius);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.complete-file-info .file-icon{width:40px;height:40px;padding:8px}.complete-actions{display:flex;flex-direction:column;gap:12px;width:100%}.primary-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;font-size:15px;font-weight:600;font-family:Inter,sans-serif;color:#fff;background:var(--accent-primary);border:none;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.primary-button:hover{background:var(--accent-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.primary-button:active{transform:translateY(0)}.primary-button svg{width:20px;height:20px}.secondary-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;font-size:15px;font-weight:600;font-family:Inter,sans-serif;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.secondary-button:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-light)}.secondary-button svg{width:18px;height:18px}.complete-notice{font-size:13px;color:var(--text-muted);line-height:1.6}.app-footer{padding:18px 24px;text-align:center;border-top:1px solid var(--border-color);background:var(--bg-card)}.app-footer p{font-size:13px;color:var(--text-muted)}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 480px){.app-main{padding:24px 16px}.initial-screen{gap:24px}.drop-zone{padding:36px 20px}.drop-icon{width:48px;height:48px;padding:12px}.code-box .code{font-size:24px;letter-spacing:4px}.input-group{flex-direction:column}.receive-button{width:100%;justify-content:center}}.electron .app-main{justify-content:center;padding:16px 20px}.electron .initial-screen{gap:20px}.electron .drop-zone{padding:32px 20px}.electron .drop-icon{width:48px;height:48px;padding:12px}.electron .sending-screen,.electron .receiving-screen,.electron .complete-screen{gap:18px}.electron .receive-hint{margin-top:10px}.title-bar{display:flex;align-items:center;justify-content:space-between;height:40px;background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:0 8px 0 14px;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;flex-shrink:0}.title-bar-drag{display:flex;align-items:center;gap:8px;flex:1}.title-bar-icon{width:18px;height:18px;color:var(--accent-primary);display:flex;align-items:center;justify-content:center}.title-bar-icon svg{width:100%;height:100%}.title-bar-text{font-family:Inter,sans-serif;font-size:13px;font-weight:600;font-style:italic;color:var(--text-primary);letter-spacing:-.2px}.title-bar-controls{display:flex;align-items:center;gap:2px;-webkit-app-region:no-drag}.title-bar-button{display:flex;align-items:center;justify-content:center;width:36px;height:28px;background:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.title-bar-button svg{width:14px;height:14px}.title-bar-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.title-bar-button.close:hover{background:var(--error);color:#fff}
