.aipe-wrap{max-width:900px;margin:28px auto;padding:24px;border:1px solid #e2e5e9;border-radius:18px;background:#fff;color:#1d2327;box-shadow:0 8px 28px rgba(20,30,50,.05);font:inherit}
.aipe-wrap [hidden]{display:none!important}
.aipe-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.aipe-heading h3{margin:0 0 7px;font-size:1.35rem;line-height:1.3}
.aipe-heading p{margin:0;color:#68717b;font-size:.95rem}
.aipe-tag{display:inline-block;padding:5px 9px;border-radius:999px;background:#f2f4f7;color:#59616b;font-size:.72rem;font-weight:700;letter-spacing:.06em;white-space:nowrap}
.aipe-dropzone{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:22px;border:1.5px dashed #bcc4cf;border-radius:14px;background:#fafbfc;cursor:pointer;text-align:center;transition:border-color .15s,background .15s}
.aipe-dropzone:hover,.aipe-dropzone.is-dragover{border-color:#5269d9;background:#f5f7ff}
.aipe-file{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.aipe-upload-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#edf0ff;color:#4358c5;font-size:25px;font-weight:500}
.aipe-muted,.aipe-smallprint{color:#717985;font-size:.84rem}
.aipe-file-name{max-width:100%;overflow-wrap:anywhere;color:#4b5563;font-size:.87rem}
.aipe-preview-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}
.aipe-preview-card{display:flex;flex-direction:column;gap:10px;min-width:0;font-size:.93rem;font-weight:600}
.aipe-preview-title{display:block;font-weight:700;color:#222831}
.aipe-image-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:260px;overflow:hidden;border:1px solid #e9ecf1;border-radius:13px;background:#f7f8fa}
.aipe-image-stage>img{display:block;width:100%;height:100%;max-height:440px;object-fit:contain;border-radius:12px;background:#f1f3f5}
.aipe-placeholder,.aipe-loading-state{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;min-height:258px;padding:26px;text-align:center;color:#6c7480}
.aipe-placeholder strong,.aipe-loading-state strong{color:#394150;font-size:.96rem;font-weight:650}
.aipe-placeholder span,.aipe-loading-state span:last-child{max-width:260px;color:#858d99;font-size:.83rem;font-weight:400;line-height:1.5}
.aipe-placeholder-icon{width:52px;height:52px;fill:none;stroke:#98a2b3;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.aipe-sparkle-icon{stroke:#7b86df}
.aipe-loading-state{gap:13px;color:#5865c5}
.aipe-spinner,.aipe-button-spinner{display:inline-block;border:3px solid #dfe3ff;border-top-color:#5667d8;border-radius:50%;animation:aipe-spin .8s linear infinite}
.aipe-spinner{width:42px;height:42px;border-width:4px}
.aipe-button-spinner{width:17px;height:17px;border-width:2px;vertical-align:-3px;margin-right:8px;border-color:rgba(255,255,255,.45);border-top-color:#fff}
@keyframes aipe-spin{to{transform:rotate(360deg)}}
.aipe-download{align-self:flex-start;font-size:.9rem;font-weight:600;text-decoration:underline}
.aipe-submit{display:block;width:100%;margin-top:22px;padding:15px 18px;border:0;border-radius:10px;background:#252a32;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:opacity .15s,background .15s}
.aipe-submit:hover:not(:disabled){opacity:.88}
.aipe-submit:disabled{opacity:.45;cursor:not-allowed}
.aipe-submit.is-processing{background:#4554b8;opacity:1}
.aipe-status{margin:12px 0 0;color:#626b76;font-size:.9rem;line-height:1.5}
.aipe-status.is-error{color:#b42318}.aipe-status.is-success{color:#167647}.aipe-status.is-working{color:#4358c5}
.aipe-smallprint{margin:12px 0 0;line-height:1.45}
.aipe-notice{padding:14px 16px;border:1px solid #e2e5e9;border-radius:10px;color:#626b76;background:#fafbfc}
@media(prefers-reduced-motion:reduce){.aipe-spinner,.aipe-button-spinner{animation-duration:2s}}
@media(max-width:560px){.aipe-wrap{padding:16px;border-radius:14px}.aipe-heading{gap:8px}.aipe-heading h3{font-size:1.15rem}.aipe-preview-row{grid-template-columns:1fr}.aipe-image-stage{min-height:220px}.aipe-placeholder,.aipe-loading-state{min-height:218px}.aipe-image-stage>img{max-height:360px}}


/* Generation history page */
.aipe-history-wrap{max-width:1100px;margin:28px auto;padding:24px;border:1px solid #e2e5e9;border-radius:18px;background:#fff;color:#1d2327;box-shadow:0 8px 28px rgba(20,30,50,.05);font:inherit}
.aipe-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.aipe-history-heading h2{margin:0 0 6px;font-size:1.45rem;line-height:1.3;color:#222831}
.aipe-history-heading p{margin:0;color:#68717b;font-size:.95rem;font-weight:400}
.aipe-history-count{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f2f4f7;color:#59616b;font-size:.82rem;font-weight:650;white-space:nowrap}
.aipe-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.aipe-history-item{min-width:0;overflow:hidden;border:1px solid #e6e9ee;border-radius:14px;background:#fff}
.aipe-history-image-link{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;overflow:hidden;background:#f5f6f8}
.aipe-history-image{display:block;width:100%;height:100%;object-fit:contain;transition:transform .18s ease}
.aipe-history-image-link:hover .aipe-history-image{transform:scale(1.015)}
.aipe-history-item-body{padding:14px}
.aipe-history-item-body h3{margin:0 0 7px;font-size:1rem;line-height:1.4;color:#252a32}
.aipe-history-item-body time{display:block;color:#7a838f;font-size:.82rem;font-weight:400}
.aipe-history-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:13px;font-size:.88rem;font-weight:600}
.aipe-history-actions a{color:#495bc6;text-decoration:none}
.aipe-history-actions a:hover{text-decoration:underline}
.aipe-history-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:24px;color:#68717b;font-size:.9rem}
.aipe-history-pagination a{color:#495bc6;text-decoration:none;font-weight:650}
.aipe-history-privacy{margin:20px 0 0;color:#7a838f;font-size:.8rem;line-height:1.5;font-weight:400}
@media(max-width:760px){.aipe-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aipe-history-wrap{padding:16px}}
@media(max-width:480px){.aipe-history-grid{grid-template-columns:1fr}.aipe-history-heading{align-items:flex-start;flex-direction:column}.aipe-history-pagination{gap:10px;flex-wrap:wrap}}

/* Clickable generation titles and image lightbox */
.aipe-history-title-link{color:inherit;text-decoration:none}
.aipe-history-title-link:hover,.aipe-history-title-link:focus{text-decoration:underline;color:#495bc6}
.aipe-history-image-link{cursor:zoom-in}
.aipe-source-preview,.aipe-result-image{cursor:zoom-in}
.aipe-lightbox{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,18,25,.86);cursor:zoom-out;box-sizing:border-box}
.aipe-lightbox[hidden]{display:none!important}
.aipe-lightbox-image{display:block;max-width:min(96vw,1600px);max-height:92vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 12px 50px rgba(0,0,0,.35);cursor:zoom-out}
.aipe-lightbox-close{position:absolute;top:16px;right:20px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font:inherit;font-size:30px;line-height:1;cursor:pointer}
.aipe-lightbox-close:hover{background:rgba(255,255,255,.28)}
body.aipe-lightbox-open{overflow:hidden}
@media(max-width:560px){.aipe-lightbox{padding:10px}.aipe-lightbox-image{max-width:98vw;max-height:88vh}.aipe-lightbox-close{top:8px;right:8px}}


/* Free quota and custom registration/login modal (v0.5.0) */
.aipe-auth-inline{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:8px;padding:10px 15px;border:0;border-radius:9px;background:#4f46e5;color:#fff;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s,transform .15s}
.aipe-auth-inline:hover{background:#4338ca;transform:translateY(-1px)}
.aipe-auth-modal[hidden]{display:none!important}
.aipe-auth-modal{position:fixed;inset:0;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}
.aipe-auth-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:rgba(17,24,39,.62);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);overflow-y:auto}
.aipe-auth-dialog{position:relative;box-sizing:border-box;width:min(100%,440px);max-height:calc(100vh - 40px);overflow-y:auto;padding:34px 32px 27px;border:1px solid rgba(255,255,255,.7);border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(12,18,40,.28);color:#202536;text-align:center;animation:aipe-modal-in .22s ease-out}
@keyframes aipe-modal-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.aipe-auth-close{position:absolute;top:13px;right:13px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#f3f4f8;color:#626b7b;font-size:25px;line-height:1;cursor:pointer}
.aipe-auth-close:hover{background:#e9ebf3;color:#202536}
.aipe-auth-mark{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 13px;border-radius:17px;background:linear-gradient(145deg,#e9ecff,#f7eaff);color:#514bd5}
.aipe-auth-mark svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.aipe-auth-eyebrow{margin:0 0 8px;color:#6158d8;font-size:.7rem;font-weight:800;letter-spacing:.13em}
.aipe-auth-dialog h2{margin:0 18px 9px;color:#202536;font-size:1.55rem;line-height:1.25;font-weight:750;letter-spacing:-.025em}
.aipe-auth-description{max-width:330px;margin:0 auto 22px;color:#71798a;font-size:.95rem;line-height:1.55;font-weight:400}
.aipe-auth-form{display:flex;flex-direction:column;gap:14px;text-align:left}
.aipe-auth-form[hidden]{display:none!important}
.aipe-auth-form label{display:flex;flex-direction:column;gap:7px;color:#3e4657;font-size:.84rem;font-weight:650}
.aipe-auth-form input{box-sizing:border-box;width:100%;height:47px;padding:0 13px;border:1px solid #dfe3eb;border-radius:10px;background:#fff;color:#202536;font:inherit;font-size:.94rem;outline:none;transition:border-color .15s,box-shadow .15s}
.aipe-auth-form input:focus{border-color:#7068eb;box-shadow:0 0 0 3px rgba(99,91,220,.13)}
.aipe-auth-form input::placeholder{color:#a1a8b5}
.aipe-auth-submit{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:2px;padding:12px 18px;border:0;border-radius:10px;background:#5048d8;color:#fff;font:inherit;font-weight:750;cursor:pointer;box-shadow:0 5px 14px rgba(80,72,216,.2);transition:background .15s,opacity .15s}
.aipe-auth-submit:hover:not(:disabled){background:#4338ca}
.aipe-auth-submit:disabled{opacity:.65;cursor:wait}
.aipe-auth-submit.is-loading:before{content:"";width:15px;height:15px;margin-right:9px;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:aipe-spin .8s linear infinite}
.aipe-auth-error{margin:0;padding:10px 12px;border-radius:8px;background:#fff0f0;color:#b42318;font-size:.84rem;line-height:1.45}
.aipe-auth-switch{margin:19px 0 0;color:#767d8d;font-size:.88rem;font-weight:400}
.aipe-auth-switch button{padding:0;border:0;background:transparent;color:#5048d8;font:inherit;font-weight:750;cursor:pointer}
.aipe-auth-switch button:hover{text-decoration:underline}
.aipe-auth-terms{margin:17px 0 0;color:#9aa1af;font-size:.74rem;line-height:1.45;font-weight:400}
.aipe-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important}
body.aipe-auth-open{overflow:hidden}
@media(max-width:480px){.aipe-auth-modal,.aipe-auth-backdrop{padding:12px}.aipe-auth-dialog{padding:29px 20px 23px;border-radius:18px;max-height:calc(100vh - 24px)}.aipe-auth-dialog h2{font-size:1.35rem}.aipe-auth-description{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.aipe-auth-dialog{animation:none}.aipe-auth-submit.is-loading:before{animation-duration:2s}}
