*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#fff}.container{max-width:600px;margin:0 auto;padding:40px 20px}h1{text-align:center;font-size:2rem;margin-bottom:8px;background:linear-gradient(90deg,#00d4ff,#7b2cbf);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{text-align:center;color:#888;margin-bottom:40px;font-size:.95rem}.upload-section{background:#ffffff0d;border-radius:16px;padding:30px;margin-bottom:20px}.upload-box{border:2px dashed rgba(255,255,255,.2);border-radius:12px;padding:30px;text-align:center;cursor:pointer;transition:all .3s;margin-bottom:16px}.upload-box:hover{border-color:#00d4ff;background:#00d4ff0d}.upload-box.has-file{border-color:#4ade80;background:#4ade801a}.upload-box input{display:none}.upload-icon{font-size:2.5rem;margin-bottom:12px}.upload-label{font-size:1rem;color:#ccc}.file-name{font-size:.9rem;color:#4ade80;margin-top:8px;word-break:break-all}.generate-btn{width:100%;padding:16px;font-size:1.1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;background:linear-gradient(90deg,#00d4ff,#7b2cbf);color:#fff;transition:all .3s}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #00d4ff4d}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.status{text-align:center;margin-top:20px;padding:16px;border-radius:12px;background:#ffffff0d}.status.processing{color:#fbbf24}.status.success{color:#4ade80}.status.error{color:#f87171}.progress-bar{height:4px;background:#ffffff1a;border-radius:2px;margin-top:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#00d4ff,#7b2cbf);transition:width .3s}.disclaimer{text-align:center;font-size:.8rem;color:#666;margin-top:30px;padding:16px;background:#ffffff08;border-radius:8px}.result-info{margin-top:16px;padding:12px;background:#4ade801a;border-radius:8px;font-size:.85rem}.result-info ul{list-style:none;margin-top:8px}.result-info li{padding:4px 0;color:#aaa}
