.app{width:100%;max-width:560px}.card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:36px 32px}h1{text-align:center;color:#1a1a2e;font-size:26px}.subtitle{text-align:center;color:#888;font-size:13px;margin:6px 0 28px}.url-input-area{display:flex;gap:10px;margin-top:4px}.url-field{flex:1;padding:12px 14px;border:2px solid #d0d5dd;border-radius:10px;font-size:14px;outline:none;transition:border-color .25s}.url-field:focus{border-color:#667eea}.url-btn{padding:0 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .25s;white-space:nowrap}.url-btn:hover:not(:disabled){transform:translateY(-1px)}.url-btn:disabled{opacity:.45;cursor:not-allowed}.mode-tabs{display:flex;gap:0;margin-bottom:16px;border-radius:10px;overflow:hidden;border:2px solid #d0d5dd}.mode-tab{flex:1;padding:10px 0;text-align:center;background:#fafbfc;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;color:#666}.mode-tab:hover:not(:disabled){background:#f0f4ff}.mode-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.mode-tab:disabled{opacity:.5;cursor:not-allowed}.upload-area{display:flex;flex-direction:column;align-items:center;border:3px dashed #d0d5dd;border-radius:14px;padding:36px 20px;cursor:pointer;transition:all .25s;background:#fafbfc}.upload-area:hover:not(.disabled){border-color:#667eea;background:#f0f4ff}.upload-area.dragover{border-color:#667eea;background:#e8eeff}.upload-area.disabled{opacity:.5;cursor:not-allowed}.upload-icon{font-size:40px;margin-bottom:10px}.upload-text{color:#555;font-size:15px;margin-bottom:6px}.upload-hint{color:#aaa;font-size:12px}.preview-box{margin-top:20px}.preview-label{text-align:center;color:#777;font-size:13px;margin-bottom:8px;font-weight:500}.preview-box img{width:100%;border-radius:10px;box-shadow:0 4px 12px #00000014}.btn-primary{width:100%;padding:14px;margin-top:22px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .25s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.loading-box{text-align:center;padding:24px 0 8px}.spinner{width:36px;height:36px;border:4px solid #e8eaed;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}.loading-box p{color:#666;font-size:14px}.progress-text{color:#999!important;font-size:12px!important;margin-top:4px}.error-box{background:#fff0f0;border:1px solid #fcc;border-radius:10px;padding:14px;margin-top:20px;text-align:center;color:#c33;font-size:14px}.result-box{margin-top:24px}.result-label{text-align:center;color:#333;font-weight:600;font-size:17px;margin-bottom:14px}.result-box img{width:100%;border-radius:10px;box-shadow:0 4px 16px #0000001a}.btn-secondary{display:block;text-align:center;padding:12px;margin-top:14px;background:#28a745;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;transition:all .25s}.btn-secondary:hover{background:#218838;transform:translateY(-1px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}#root{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px}
