@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Serif+Display&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#faf8f5;--bg-secondary:#fff;--bg-input:#f3f0eb;--accent:#8b6d5c;--accent-hover:#74594a;--accent-soft:#8b6d5c14;--accent-border:#8b6d5c2e;--text-primary:#2c2825;--text-secondary:#7a7168;--text-muted:#b0a89e;--border:#e8e3dc;--radius:16px;--radius-sm:10px;--shadow-sm:0 1px 3px #2c28250a, 0 1px 2px #2c282505;--shadow-md:0 4px 16px #2c28250f, 0 1px 4px #2c28250a}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.55}#root,.app{flex-direction:column;min-height:100dvh;display:flex}.header{text-align:center;padding:24px 20px 16px}.logo-row{justify-content:center;align-items:center;gap:8px;display:inline-flex}.logo{letter-spacing:-.01em;color:var(--text-primary);justify-content:center;align-items:center;gap:10px;font-family:DM Serif Display,Georgia,serif;font-size:1.35rem;font-weight:400;display:flex}.logo-icon{flex-shrink:0}.subtitle{color:var(--text-muted);letter-spacing:.02em;margin-top:6px;font-size:.85rem}.main{flex:1;width:100%;max-width:460px;margin:0 auto;padding:8px 16px 24px}@media (min-width:768px){.main{max-width:520px;padding:12px 24px 32px}}.workflow{flex-direction:column;gap:16px;display:flex}.step{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:22px}.step-title{color:var(--text-primary);align-items:center;gap:10px;margin-bottom:16px;font-family:DM Serif Display,Georgia,serif;font-size:1.05rem;font-weight:400;display:flex}.step-number{background:var(--text-primary);width:26px;height:26px;color:var(--bg-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:DM Sans,sans-serif;font-size:.75rem;font-weight:600;display:flex}.model-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b0a89e' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.model-select:focus{border-color:var(--accent);outline:none}.upload-zone{border:1.5px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:36px 20px;transition:border-color .2s,background .2s}.upload-zone:hover,.upload-zone--dragging{border-color:var(--accent);background:var(--accent-soft)}.upload-icon{color:var(--text-muted);margin-bottom:12px}.upload-text{color:var(--text-secondary);margin-bottom:4px;font-size:.9rem}.upload-hint{color:var(--text-muted);font-size:.8rem}.image-actions{text-align:center}.btn-text{color:var(--accent);cursor:pointer;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);background:0 0;border:none;padding:4px 8px;font-family:inherit;font-size:.85rem}.btn-text:hover{color:var(--accent-hover);-webkit-text-decoration-color:var(--accent-hover);text-decoration-color:var(--accent-hover)}.crop-container{border-radius:var(--radius-sm);background:var(--bg-input);width:100%;height:300px;position:relative;overflow:hidden}@media (min-width:768px){.crop-container{height:400px}}.zoom-control{align-items:center;gap:12px;margin-top:14px;display:flex}.zoom-control label{color:var(--text-secondary);white-space:nowrap;font-size:.82rem}.zoom-control input[type=range]{flex:1}.adjustments{flex-direction:column;gap:16px;display:flex}.adjustment-row{flex-direction:column;gap:4px;display:flex}.toggle-label{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:.9rem;display:flex}.toggle-label input{display:none}.toggle-switch{background:var(--border);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000001a}.toggle-label input:checked+.toggle-switch{background:var(--accent)}.toggle-label input:checked+.toggle-switch:after{transform:translate(18px)}.auto-note{color:var(--text-secondary);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.8rem;line-height:1.45}.toggle-locked{opacity:.45;cursor:default}.adjustment-hint{color:var(--text-muted);padding-left:50px;font-size:.75rem}.slider-group{flex-direction:column;gap:6px;display:flex}.slider-row{justify-content:space-between;align-items:center;display:flex}.slider-row label{color:var(--text-secondary);font-size:.85rem}.slider-value{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:32px;font-size:.78rem}input[type=range]{-webkit-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;width:100%;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:2px solid var(--bg-secondary);border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0000001f}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid var(--bg-secondary);border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #0000001f}.kindle-preview{flex-direction:column;align-items:center;padding:28px 0 8px;display:flex}.kindle-device{position:relative}.kindle-body{background:linear-gradient(160deg,#e8e5e0 0%,#d5d0c8 40%,#ccc7bf 100%);border-radius:14px;width:100%;height:100%;position:relative;box-shadow:inset 0 1px #f0ece6,inset 0 -1px #b8b3aa,0 16px 48px #2c28251f,0 4px 12px #2c282514}.kindle-screen{background:#f0ece4;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.kindle-screen-img{object-fit:cover;width:100%;height:100%;display:block}.kindle-placeholder{color:#b8b3aa;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px;font-size:.7rem;display:flex}.kindle-logo{opacity:.35;position:absolute;left:50%;transform:translate(-50%)}.kindle-model-label{color:var(--text-muted);letter-spacing:.01em;margin-top:14px;font-size:.78rem}.generate-btn{background:var(--text-primary);width:100%;color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:10px;padding:14px 16px;font-family:inherit;font-size:.95rem;font-weight:500;transition:background .2s,transform .1s;display:flex}.generate-btn:hover:not(:disabled){background:var(--accent-hover)}.generate-btn:active:not(:disabled){transform:scale(.985)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{border:2px solid #faf8f54d;border-top-color:var(--bg-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.instructions{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:var(--radius-sm);margin-top:16px;padding:16px}.instructions-title{color:var(--accent);margin-bottom:8px;font-family:DM Serif Display,Georgia,serif;font-size:.95rem;font-weight:400}.instructions p{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem}.instructions ol{color:var(--text-secondary);padding-left:20px;font-size:.82rem}.instructions li{margin-bottom:4px}.instructions code{background:var(--bg-input);color:var(--accent);border-radius:4px;padding:2px 6px;font-size:.78rem}.instructions strong{color:var(--text-primary);font-weight:500}.instructions-note{color:var(--text-muted);margin-top:12px;font-size:.78rem}.inline-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border)}.inline-link:hover{color:var(--accent-hover)}.account-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.account-email{color:var(--text-muted);font-size:.78rem}.account-badge{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;padding:2px 8px;font-size:.68rem;font-weight:500}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#2c282580;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg-secondary);border-radius:var(--radius);width:100%;max-width:380px;padding:32px 24px;position:relative;box-shadow:0 20px 60px #2c282533}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;top:16px;right:16px}.modal-close:hover{color:var(--text-primary)}.modal-title{color:var(--text-primary);margin-bottom:4px;font-family:DM Serif Display,Georgia,serif;font-size:1.15rem;font-weight:400}.modal-subtitle{color:var(--text-secondary);margin-bottom:20px;font-size:.85rem;line-height:1.4}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);padding:12px 14px;font-family:inherit;font-size:.9rem;transition:border-color .2s}.auth-input:focus{border-color:var(--accent);outline:none}.auth-input::placeholder{color:var(--text-muted)}.auth-error{color:#c0392b;border-radius:var(--radius-sm);background:#c0392b0f;padding:8px 12px;font-size:.8rem}.auth-switch{color:var(--text-muted);text-align:center;margin-top:16px;font-size:.82rem}.paywall-content{text-align:center}.paywall-icon{color:var(--text-muted);margin-bottom:16px}.paywall-btn{margin-top:8px}.paywall-note{color:var(--text-muted);text-align:center;margin-top:12px;font-size:.75rem}.toast{background:var(--text-primary);color:var(--bg-primary);border-radius:var(--radius-sm);z-index:200;padding:12px 24px;font-size:.85rem;font-weight:500;animation:.3s toast-in;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #2c282526}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.etsy-section{text-align:center;padding:28px 0 8px}.etsy-title{color:var(--text-primary);margin-bottom:4px;font-family:DM Serif Display,Georgia,serif;font-size:1.05rem;font-weight:400}.etsy-subtitle{color:var(--text-muted);margin-bottom:16px;font-size:.82rem}.etsy-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.etsy-card{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);flex-direction:column;align-items:center;gap:8px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.etsy-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.etsy-img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.etsy-label{color:var(--text-secondary);padding:6px 8px 10px;font-size:.78rem}.etsy-browse{color:var(--accent);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);margin-top:4px;font-size:.82rem;display:inline-block}.etsy-browse:hover{color:var(--accent-hover)}.paywall-divider{color:var(--text-muted);align-items:center;gap:12px;margin:20px 0;font-size:.78rem;display:flex}.paywall-divider:before,.paywall-divider:after{content:"";background:var(--border);flex:1;height:1px}.footer{text-align:center;padding:24px 16px}.footer p{color:var(--text-muted);letter-spacing:.01em;font-size:.78rem}@supports (padding:env(safe-area-inset-bottom)){.footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.header{padding-top:calc(32px + env(safe-area-inset-top))}}
