@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;700;800&family=DM+Sans:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box}:root{--color-primary-start: #f472b6;--color-primary-end: #c084fc;--color-accent: #06b6d4;--color-bg: #fdf2f8;--color-surface: #ffffff;--color-text: #1e293b;--color-text-muted: #64748b;--color-border-dashed: #f0abfc;--color-progress-track: #fce7f3;--color-error: #e11d48;--color-error-bg: #fff1f2;--font-heading: "Nunito", sans-serif;--font-body: "DM Sans", sans-serif}body{margin:0;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.5;min-height:100vh}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.02em;margin:0 0 .5rem}a{color:var(--color-accent);text-decoration:underline}a:hover{opacity:.8}.app-header{background:linear-gradient(135deg,var(--color-primary-start),var(--color-primary-end));padding:24px;text-align:center;border-radius:20px;margin:24px 24px 0}.app-header h1{color:#fff;font-size:26px;font-weight:800;margin:0}.app-header p{color:#ffffffe0;font-size:14px;margin:4px 0 0}.content-card{background:var(--color-bg);border-radius:20px;overflow:hidden}.content-body{padding:24px}.btn{display:inline-block;padding:12px 28px;font-family:var(--font-body);font-weight:600;font-size:15px;border:none;border-radius:50px;cursor:pointer;transition:opacity .15s,transform .1s;text-decoration:none;text-align:center}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--color-primary-start),var(--color-primary-end));color:#fff}.btn-secondary{background-color:var(--color-accent);color:#fff}.btn-ghost{background-color:var(--color-surface);color:var(--color-text)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.upload-zone{border:2px dashed var(--color-border-dashed);border-radius:16px;padding:36px 24px;text-align:center;cursor:pointer;transition:background-color .15s;background-color:var(--color-surface)}.upload-zone:hover,.upload-zone.drag-over{background-color:var(--color-progress-track)}.upload-icon{width:60px;height:60px;background:linear-gradient(135deg,var(--color-primary-start),var(--color-primary-end));border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:26px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{display:inline-block;width:48px;height:48px;border:4px solid var(--color-progress-track);border-top-color:var(--color-primary-start);border-radius:50%;animation:spin .8s linear infinite}.progress-bar-track{width:100%;height:10px;background:var(--color-progress-track);border-radius:8px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(135deg,var(--color-primary-start),var(--color-primary-end));border-radius:8px;transition:width .2s ease}.praise-card{background:linear-gradient(135deg,var(--color-primary-start),var(--color-primary-end));border-radius:16px;padding:24px}.praise-card h3{color:#fff;font-size:19px;font-weight:700;margin-bottom:10px}.praise-card p{color:#ffffffeb;font-size:15px;line-height:1.65;margin:0}.image-frame{background:var(--color-surface);border-radius:16px;padding:8px;margin-bottom:16px}.image-frame img{display:block;width:100%;border-radius:12px}.error-message{color:var(--color-error);font-weight:500;font-size:14px;border-radius:12px;padding:14px 18px;background:var(--color-error-bg);text-align:center}.ad-banner-wrapper{background:#fff9;border-radius:12px;border:1px dashed #e9d5ff;margin-top:16px;padding:4px;color:#a78bfa}#root{max-width:860px;margin:0 auto;padding:2rem 1rem}
