@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--background:#0f172a;--foreground:#e2e8f0;--muted:#94a3b8;--panel:#0f172ab8;--panel-border:#94a3b82e;--primary:#38bdf8;--primary-strong:#0ea5e9;--danger:#fda4af;--success:#86efac;--link:#7dd3fc;--green:#86efac;--red:#fda4af}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:radial-gradient(circle at top, #0ea5e92e, transparent 30%), linear-gradient(180deg, #020617 0%, var(--background) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box;margin:0;padding:0}a{color:var(--primary);text-decoration:none}h1,h2{letter-spacing:-.02em}p{line-height:1.6}input,button{font:inherit}.page-shell,.auth-shell{width:min(1100px,100% - 2rem);margin:0 auto;padding:2rem 0 4rem}.auth-shell{align-items:center;gap:1.5rem;min-height:100vh;display:grid}.auth-copy{gap:.75rem;display:grid}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.grid-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem;display:grid}.panel{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;box-shadow:0 24px 80px #0f172a59}.form-panel{gap:1rem;padding:1.5rem;display:grid}.panel-heading{gap:.35rem;display:grid}.panel-heading p,.subtitle,.auth-copy p{color:var(--muted)}.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.75rem;font-size:.82rem;font-weight:700}.field{gap:.45rem;display:grid}.field span,.info-list dt{color:var(--muted);font-size:.92rem}.field input{width:100%;color:var(--foreground);background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;padding:.95rem 1rem}.button{cursor:pointer;border:0;border-radius:14px;padding:.9rem 1.1rem;font-weight:700;transition:transform .18s,opacity .18s,background .18s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.7;cursor:wait;transform:none}.button.primary{color:#082f49;background:linear-gradient(135deg,#7dd3fc 0%,#38bdf8 100%)}.button.ghost{color:var(--foreground);background:#94a3b81f;border:1px solid #94a3b82e}.button.danger{color:#4c0519;background:linear-gradient(135deg,#fda4af 0%,#fb7185 100%)}.input{width:100%;color:var(--foreground);font:inherit;cursor:pointer;appearance:none;background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;padding:.95rem 1rem}.input:focus{border-color:#38bdf8a6;outline:2px solid #38bdf859}select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.5rem}.table,.data-table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.data-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--panel-border);padding:.65rem .75rem;font-size:.8rem}.table td,.data-table td{vertical-align:middle;border-bottom:1px solid #94a3b814;padding:.65rem .75rem}.table tr:last-child td,.data-table tr:last-child td{border-bottom:none}.table tbody tr:hover,.data-table tbody tr:hover{background:#94a3b80d}.message{border-radius:14px;padding:.8rem 1rem;font-size:.95rem}.message.error{color:#fecdd3;background:#be185d1f;border:1px solid #f472b62e}.message.success{color:#dcfce7;background:#16a34a1f;border:1px solid #4ade802e}.info-list{gap:1rem;padding:1.5rem;display:grid}.info-list div{gap:.25rem;display:grid}.info-list dd{font-size:1.05rem;font-weight:600}.result-card{background:#0f172a75;border:1px solid #94a3b81f;border-radius:16px;gap:.85rem;padding:1rem;display:grid}.preview-image{object-fit:contain;border:1px solid #94a3b82e;border-radius:16px;width:100%;height:auto;max-height:640px}.break-all{word-break:break-all}.header-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.image-gen-layout{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.seg-group{gap:.5rem;display:flex}.seg-group.wrap{flex-wrap:wrap}.seg-btn{color:var(--muted);cursor:pointer;white-space:nowrap;background:#0f172a99;border:1px solid #94a3b82e;border-radius:10px;flex:1;padding:.55rem .9rem;font-size:.88rem;font-weight:600;transition:all .15s}.seg-btn:hover{color:var(--foreground);border-color:#38bdf866}.seg-btn.active{color:var(--primary);background:#38bdf826;border-color:#38bdf899}.custom-size-row{align-items:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.custom-size-field{color:var(--muted);flex-direction:column;flex:1;gap:.3rem;font-size:.82rem;display:flex}.custom-size-sep{color:var(--muted);flex-shrink:0;padding-bottom:.5rem;font-size:1.1rem}.ref-image-field{gap:.5rem}.ref-image-row{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.ref-image-upload-label{cursor:pointer;color:var(--muted);border:1.5px dashed #94a3b840;border-radius:14px;justify-content:center;align-items:center;gap:.5rem;padding:.9rem 1rem;font-size:.88rem;transition:all .15s;display:flex}.ref-image-upload-label:hover{color:var(--foreground);background:#38bdf80d;border-color:#38bdf873}.ref-image-preview{align-items:flex-start;gap:.5rem;display:inline-flex;position:relative}.ref-image-thumb{object-fit:cover;border:1px solid #94a3b833;border-radius:10px;max-width:120px;max-height:100px}.ref-image-clear{color:#fff;cursor:pointer;background:#ef4444d9;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.ref-image-hint{color:var(--muted);margin:0;font-size:.8rem}.seg-btn:disabled{opacity:.5;cursor:not-allowed}.select-field{width:100%;color:var(--foreground);font:inherit;cursor:pointer;background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;padding:.95rem 1rem}.select-field:focus{border-color:#38bdf8a6;outline:2px solid #38bdf859}.textarea-field,.input-field{width:100%;color:var(--foreground);font:inherit;background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;padding:.95rem 1rem}.textarea-field{resize:vertical;line-height:1.6}.textarea-field:focus,.input-field:focus{border-color:#38bdf8a6;outline:2px solid #38bdf859}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.button-row .button{flex:1}.muted-text{color:var(--muted);font-size:.93rem;line-height:1.6}.success-btn{color:#86efac;border-color:#4ade804d}.gen-placeholder{min-height:240px;color:var(--muted);border:1px dashed #94a3b833;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes btn-pulse{0%,to{box-shadow:0 0 #38bdf800}50%{box-shadow:0 0 18px 4px #38bdf847}}@keyframes dot-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.skeleton-card{background:linear-gradient(90deg,#1e293bb3 25%,#38bdf812 50%,#1e293bb3 75%) 0 0/200% 100%;border:1px solid #38bdf814;animation:1.8s ease-in-out infinite shimmer}.button.primary.is-loading{pointer-events:none;background:linear-gradient(90deg,#7dd3fc 0%,#bae6fd 45%,#38bdf8 55%,#7dd3fc 100%) 0 0/300% 100%;animation:1.6s linear infinite shimmer,2s ease-in-out infinite btn-pulse}.btn-dots{vertical-align:middle;align-items:center;gap:4px;margin-right:6px;display:inline-flex}.btn-dots span{background:currentColor;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite dot-bounce;display:inline-block}.btn-dots span:nth-child(2){animation-delay:.15s}.btn-dots span:nth-child(3){animation-delay:.3s}.gen-fade-in,.gen-fade-in-item{animation:.5s cubic-bezier(.22,1,.36,1) both fade-up}.gen-fade-in-item:first-child{animation-delay:0s}.gen-fade-in-item:nth-child(2){animation-delay:60ms}.gen-fade-in-item:nth-child(3){animation-delay:.12s}.gen-fade-in-item:nth-child(4){animation-delay:.18s}.gen-fade-in-item:nth-child(5){animation-delay:.24s}.gen-fade-in-item:nth-child(6){animation-delay:.3s}.gen-fade-in-item:nth-child(7){animation-delay:.36s}.gen-fade-in-item:nth-child(8){animation-delay:.42s}.gen-fade-in-item:nth-child(9){animation-delay:.48s}.gen-fade-in-item:nth-child(10){animation-delay:.54s}.gen-spinner{border:3px solid #38bdf833;border-top-color:var(--primary);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gen-result{gap:1rem;display:grid}.field-group{border:none;gap:.45rem;margin:0;padding:0;display:grid}.field-legend{color:var(--muted);margin-bottom:.45rem;padding:0;font-size:.92rem}.field-label-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.field-label-row span{color:var(--muted);font-size:.92rem}.model-count{opacity:.7;font-weight:400}.refresh-btn{color:var(--muted);cursor:pointer;background:#94a3b814;border:1px solid #94a3b833;border-radius:8px;flex-shrink:0;padding:.2rem .55rem;font-size:1rem;line-height:1;transition:all .15s}.refresh-btn:hover:not(:disabled){color:var(--primary);border-color:#38bdf866}.refresh-btn:disabled{opacity:.4;cursor:not-allowed}.refresh-btn.spinning{animation:.6s linear infinite spin}.models-error{color:var(--danger);padding:.4rem 0;font-size:.85rem}.field-divider{background:#94a3b81f;height:1px;margin:.25rem 0}@media (max-width:840px){.page-header,.grid-layout,.image-gen-layout,.auth-shell{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:stretch}.header-actions{flex-wrap:wrap}.header-actions form{flex:1}.header-actions .button,.header-actions form .button{width:100%}}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.breadcrumb{color:var(--muted);align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.88rem;display:flex}.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--primary)}.breadcrumb span{color:var(--muted)}.board-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.proj-card{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--foreground);cursor:pointer;border-radius:18px;flex-direction:column;text-decoration:none;transition:transform .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.proj-card:hover{border-color:#38bdf859;transform:translateY(-3px)}.proj-card-cover{aspect-ratio:16/9;background:#0f172a99;flex-shrink:0;width:100%;position:relative;overflow:hidden}.cover-placeholder{opacity:.4;justify-content:center;align-items:center;width:100%;height:100%;font-size:2.5rem;display:flex}.proj-card-body{gap:.3rem;padding:.85rem 1rem .9rem;display:grid}.proj-card-name{font-size:1rem;font-weight:700;line-height:1.3}.proj-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.proj-card-meta{color:var(--muted);gap:.4rem;margin-top:.15rem;font-size:.8rem;display:flex}.card-delete-btn{width:26px;height:26px;color:var(--danger);cursor:pointer;opacity:0;background:#0f172acc;border:1px solid #f472b64d;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:.5rem;right:.5rem}.proj-card:hover .card-delete-btn{opacity:1}.card-delete-btn:hover{background:#be185d66}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;background:#0f172a80;border:2px solid #0000;border-radius:14px;padding:0;transition:transform .15s,border-color .15s;position:relative;overflow:hidden}.gallery-item:hover{border-color:#38bdf880;transform:scale(1.02)}.gallery-item.is-cover{border-color:#38bdf8b3}.gallery-item-actions{opacity:0;z-index:2;transition:opacity .15s;position:absolute;bottom:.35rem;right:.35rem}.gallery-item:hover .gallery-item-actions{opacity:1}.gallery-action-btn{width:28px;height:28px;color:var(--foreground);cursor:pointer;letter-spacing:-.5px;background:#020617d9;border:1px solid #94a3b84d;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:.95rem;line-height:1;transition:background .15s;display:flex}.gallery-action-btn:hover{background:#38bdf833}.cover-badge{color:#082f49;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;background:#38bdf8d9;border-radius:6px;padding:.1rem .45rem;font-size:.7rem;font-weight:800;position:absolute;top:.4rem;left:.4rem}.r2-badge{color:#052e16;text-transform:uppercase;pointer-events:none;background:#86efacd9;border-radius:6px;padding:.1rem .4rem;font-size:.68rem;font-weight:800;position:absolute;top:.4rem;right:.4rem}.lightbox-card{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:24px;grid-template-rows:1fr auto;width:min(840px,100vw - 2rem);max-height:calc(100vh - 4rem);display:grid;position:relative;overflow-y:auto}.lightbox-image-wrap{background:#02061799;border-radius:20px 20px 0 0;min-height:300px;max-height:55vh;position:relative;overflow:hidden}.lightbox-meta{gap:.4rem;padding:1.25rem 1.5rem 1.5rem;display:grid}.lightbox-close{z-index:10;width:32px;height:32px;color:var(--foreground);cursor:pointer;background:#0f172ad9;border:1px solid #94a3b84d;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;transition:background .15s;display:flex;position:absolute;top:.75rem;right:.75rem}.lightbox-close:hover{background:#38bdf833}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#020617bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{border:1px solid var(--panel-border);background:#0f172a;border-radius:24px;gap:1rem;width:min(480px,100vw - 2rem);padding:2rem;display:grid;box-shadow:0 40px 120px #020617b3}.modal-card h2{margin:0}.empty-state{min-height:200px;color:var(--foreground);text-align:center;border:1px dashed #94a3b833;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}@media (max-width:640px){.card-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}}.research-section{border:1px solid #94a3b826;border-radius:14px;overflow:hidden}.research-toggle{cursor:pointer;width:100%;color:var(--muted);font:inherit;text-align:left;background:#94a3b80f;border:0;align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.88rem;font-weight:600;transition:background .15s;display:flex}.research-toggle:hover{color:var(--foreground);background:#94a3b81f}.research-arrow{margin-left:auto;font-size:.75rem;transition:transform .2s}.research-arrow.open{transform:rotate(90deg)}.research-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:7px;height:7px}.research-body{border-top:1px solid #94a3b81f;gap:.75rem;padding:.85rem 1rem 1rem;display:grid}.research-checkbox-label{cursor:pointer;color:var(--muted);align-items:flex-start;gap:.6rem;font-size:.88rem;line-height:1.5;display:flex}.research-checkbox-label input[type=checkbox]{accent-color:var(--primary);flex-shrink:0;margin-top:.15rem}.research-checkbox-label:hover{color:var(--foreground)}.research-hint{color:var(--primary);background:#38bdf812;border:1px solid #38bdf82e;border-radius:10px;padding:.5rem .75rem;font-size:.82rem;line-height:1.5}.prompt-builder{border:1px solid #94a3b821;border-radius:14px;overflow:hidden}.prompt-builder-toggle{width:100%;color:var(--muted);cursor:pointer;text-align:left;background:#38bdf80a;border:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.7rem 1rem;font-size:.85rem;transition:background .15s;display:flex}.prompt-builder-toggle:hover{color:var(--foreground);background:#38bdf817}.prompt-builder-arrow{flex-shrink:0;font-size:.7rem}.prompt-builder-body{border-top:1px solid #94a3b81a;flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.prompt-builder-tabs{flex-wrap:wrap;gap:.3rem;display:flex}.prompt-builder-tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #94a3b82e;border-radius:20px;padding:.3rem .7rem;font-size:.78rem;transition:all .12s}.prompt-builder-tab:hover:not(:disabled){color:var(--foreground);border-color:#38bdf873}.prompt-builder-tab.active{color:var(--foreground);background:#38bdf826;border-color:#38bdf880}.prompt-builder-tab:disabled{opacity:.4;cursor:not-allowed}.prompt-builder-chips{flex-wrap:wrap;gap:.35rem;display:flex}.prompt-chip{color:var(--foreground);cursor:pointer;white-space:nowrap;background:#0f172a80;border:1px solid #94a3b826;border-radius:20px;padding:.28rem .7rem;font-size:.8rem;transition:all .12s}.prompt-chip:hover:not(:disabled){color:#f0f9ff;background:#38bdf81f;border-color:#38bdf873}.prompt-chip:active:not(:disabled){background:#38bdf840;transform:scale(.95)}.prompt-chip:disabled{opacity:.35;cursor:not-allowed}.prompt-builder-hint{color:var(--muted);margin:0;font-size:.76rem}.bulk-gen-layout{gap:1.5rem;display:grid}.bulk-settings-cols{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.bulk-count-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.bulk-count-input{width:70px;color:var(--foreground);font:inherit;text-align:center;background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;flex-shrink:0;padding:.55rem .75rem}.bulk-count-input:focus{border-color:#38bdf8a6;outline:2px solid #38bdf859}.bulk-progress{align-items:center;gap:.75rem;display:flex}.bulk-progress-track{background:#94a3b826;border-radius:99px;flex:1;height:5px;overflow:hidden}.bulk-progress-fill{background:linear-gradient(90deg,#38bdf8,#7dd3fc);border-radius:99px;height:100%;transition:width .4s}.bulk-items-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:start;gap:1rem;display:grid}.bulk-item-card{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.bulk-item-header{align-items:center;gap:.5rem;padding:.6rem .85rem .4rem;display:flex}.bulk-item-num{color:var(--muted);letter-spacing:.04em;font-size:.78rem;font-weight:700}.bulk-status-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:.1rem .5rem;font-size:.7rem;font-weight:700}.status-pending{color:var(--muted);background:#94a3b81f}.status-generating{color:var(--primary);background:#38bdf81f;animation:1.5s ease-in-out infinite pulse}.status-done{color:var(--success);background:#4ade801f}.status-error{color:var(--danger);background:#f472b61f}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.bulk-item-image{aspect-ratio:1;background:#02061780;position:relative;overflow:hidden}.bulk-item-placeholder{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.bulk-item-error-placeholder{padding:.75rem}.bulk-item-body{gap:.5rem;padding:.65rem .85rem .85rem;display:grid}.bulk-item-prompt{color:var(--muted);-webkit-line-clamp:3;cursor:default;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.5;display:-webkit-box;overflow:hidden}.bulk-item-revised{color:var(--primary);opacity:.75;-webkit-line-clamp:2;cursor:default;-webkit-box-orient:vertical;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.bulk-item-actions{margin-top:.25rem}.bulk-action-btn{border-radius:10px!important;padding:.45rem .8rem!important;font-size:.8rem!important}.bulk-regen-form{gap:.5rem;display:grid}@media (max-width:840px){.bulk-settings-cols{grid-template-columns:1fr}}.tools-layout{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.toolbox-upload-zone{cursor:pointer;background:#0f172a66;border:2px dashed #94a3b840;border-radius:18px;justify-content:center;align-items:center;min-height:220px;transition:border-color .18s,background .18s;display:flex}.toolbox-upload-zone:hover{background:#38bdf80a;border-color:#38bdf880}.toolbox-upload-zone.dragging{background:#38bdf814;border-color:#38bdf8cc}.toolbox-upload-zone.uploading{cursor:wait;border-color:#38bdf866}.toolbox-upload-hint{text-align:center;flex-direction:column;align-items:center;gap:.45rem;padding:2rem 1.5rem;display:flex}.toolbox-upload-icon{font-size:2.5rem;line-height:1}.toolbox-upload-title{color:var(--foreground);font-size:1rem;font-weight:700}.toolbox-upload-sub{color:var(--muted);font-size:.8rem}.toolbox-upload-uploading{color:var(--muted);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.toolbox-image-wrap{background:#0f172a66;border-radius:14px;position:relative;overflow:hidden}.toolbox-preview-img{display:block}.toolbox-steps{flex-wrap:wrap;gap:.4rem;display:flex}.toolbox-step-btn{color:var(--muted);cursor:pointer;background:#0f172a80;border:1px solid #94a3b82e;border-radius:20px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.toolbox-step-btn:hover{color:var(--foreground);border-color:#38bdf866}.toolbox-step-btn.active{color:var(--primary);background:#38bdf81f;border-color:#38bdf88c}.toolbox-step-num{opacity:.6;font-size:.7rem}.toolbox-step-label{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.toolbox-tools-list{gap:.65rem;display:grid}.toolbox-tool-card{color:var(--foreground);text-align:left;cursor:pointer;background:#0f172a80;border:1px solid #94a3b826;border-radius:16px;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;transition:all .18s;display:flex}.toolbox-tool-card:hover:not(.disabled){background:#38bdf80f;border-color:#38bdf873;transform:translateY(-1px)}.toolbox-tool-card.busy{cursor:wait;background:#38bdf814;border-color:#38bdf880}.toolbox-tool-card.disabled{opacity:.45;cursor:not-allowed;transform:none}.toolbox-tool-icon{flex-shrink:0;justify-content:center;align-items:center;min-width:1.8rem;font-size:1.6rem;line-height:1;display:flex}.toolbox-spinner{border-width:2px!important;width:22px!important;height:22px!important}.toolbox-tool-body{gap:.2rem;display:grid}.toolbox-tool-title{font-size:.95rem;font-weight:700;line-height:1.3}.toolbox-tool-desc{color:var(--muted);font-size:.8rem;line-height:1.5}.toolbox-history-detail{border-top:1px solid #94a3b81f;gap:.5rem;padding-top:.75rem;display:grid}.toolbox-history-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:700}.toolbox-history-row{align-items:center;gap:.6rem;font-size:.88rem;display:flex}.toolbox-history-num{width:1.4rem;height:1.4rem;color:var(--muted);background:#94a3b81f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex}.toolbox-history-label{color:var(--foreground);flex:1}.toolbox-history-dl{color:var(--muted);font-size:.85rem;text-decoration:none;transition:color .15s}.toolbox-history-dl:hover{color:var(--primary)}.r2-success-row{background:#22c55e14;border:1px solid #22c55e40;border-radius:8px;align-items:center;gap:.5rem;padding:6px 10px;font-size:.82rem;display:flex}.r2-success-label{color:#22c55e;flex-shrink:0;font-weight:600}.r2-success-url{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.78rem;text-decoration:none;overflow:hidden}.r2-success-url:hover{color:var(--primary)}.r2-copy-btn{flex-shrink:0;padding:3px 10px;font-size:.78rem}@media (max-width:840px){.tools-layout{grid-template-columns:1fr}}.settings-layout{gap:1.5rem;display:grid}.settings-section{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;gap:1.25rem;padding:1.5rem;display:grid}.settings-section-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.settings-section-header h3{letter-spacing:-.01em;margin-bottom:.2rem;font-size:1.1rem}.cgpt-page{flex-direction:column;height:100vh;display:flex;overflow:hidden}.cgpt-layout{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.cgpt-messages{scroll-behavior:smooth;flex:1;padding:1.5rem 1rem .5rem;overflow-y:auto}.cgpt-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;min-height:300px;display:flex}.cgpt-empty-icon{opacity:.35;font-size:2.5rem;line-height:1}.cgpt-empty-title{color:var(--foreground);margin:0;font-size:1.3rem;font-weight:600}.cgpt-empty-sub{color:var(--muted);margin:0;font-size:.85rem}.cgpt-msg{gap:.85rem;width:100%;max-width:780px;margin:0 auto .25rem;padding:.6rem .5rem;display:flex}.cgpt-msg-user{flex-direction:row-reverse}.cgpt-avatar{letter-spacing:0;width:30px;height:30px;color:var(--muted);background:#94a3b81a;border:1px solid #94a3b82e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.72rem;font-weight:700;display:flex}.cgpt-msg-user .cgpt-avatar{color:var(--primary);background:#38bdf833;border-color:#38bdf859}.cgpt-msg-body{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.cgpt-msg-user .cgpt-msg-body{align-items:flex-end}.cgpt-attached-images{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.cgpt-attached-img{object-fit:cover;border:1px solid #94a3b833;border-radius:12px;max-width:240px;max-height:240px;display:block}.cgpt-msg-text{color:var(--foreground);white-space:pre-wrap;word-break:break-word;font-size:.94rem;line-height:1.75}.cgpt-msg-user .cgpt-msg-text{text-align:left;background:#38bdf821;border:1px solid #38bdf838;border-radius:18px 18px 4px;max-width:85%;padding:.6rem 1rem;display:inline-block}.cgpt-inline-code{background:#94a3b81f;border-radius:4px;padding:.1em .35em;font-family:ui-monospace,monospace;font-size:.85em}.cgpt-tool-call{margin-bottom:.5rem}.cgpt-tool-running{color:var(--primary);background:#38bdf812;border:1px solid #38bdf82e;border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .85rem;font-size:.85rem;display:inline-flex}.cgpt-tool-image{flex-direction:column;gap:.4rem;display:flex}.cgpt-gen-image{cursor:pointer;border:1px solid #94a3b826;border-radius:14px;width:100%;max-width:420px;transition:opacity .2s;display:block}.cgpt-gen-image:hover{opacity:.9}.cgpt-image-link{color:var(--primary);opacity:.75;font-size:.78rem;text-decoration:none}.cgpt-image-link:hover{opacity:1;text-decoration:underline}.cgpt-image-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;display:flex}.cgpt-model-badge{color:#94a3b8e6;white-space:nowrap;text-overflow:ellipsis;background:#94a3b81a;border:1px solid #94a3b833;border-radius:4px;max-width:300px;padding:1px 6px;font-family:Courier New,monospace;font-size:.72rem;overflow:hidden}.cgpt-tool-error{color:#f87171;font-size:.85rem}.cgpt-tool-success{color:#86efac;opacity:.85;font-size:.82rem}.cgpt-input-wrap{flex-direction:column;gap:.5rem;width:100%;max-width:780px;margin:0 auto;padding:.75rem .5rem 1rem;display:flex}.cgpt-preview-row{flex-wrap:wrap;gap:.5rem;padding:.1rem .25rem;display:flex}.cgpt-preview-item{display:inline-block;position:relative}.cgpt-preview-img{object-fit:cover;border:1px solid #94a3b833;border-radius:8px;width:60px;height:60px;display:block}.cgpt-preview-remove{width:18px;height:18px;color:var(--foreground);cursor:pointer;background:#0f172aeb;border:1px solid #94a3b84d;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.8rem;line-height:1;display:flex;position:absolute;top:-5px;right:-5px}.cgpt-error{color:#f87171;margin:0;padding:0 .25rem;font-size:.82rem}.cgpt-input-box{background:#0f172abf;border:1px solid #94a3b833;border-radius:16px;align-items:flex-end;gap:.4rem;padding:.5rem .5rem .5rem .65rem;transition:border-color .15s;display:flex}.cgpt-input-box:focus-within{border-color:#38bdf873}.cgpt-textarea{color:var(--foreground);font:inherit;resize:none;background:0 0;border:none;outline:none;flex:1;min-height:26px;max-height:200px;padding:.15rem 0;font-size:.94rem;line-height:1.6;overflow-y:auto}.cgpt-textarea::placeholder{color:var(--muted);opacity:.7}.cgpt-textarea:disabled{cursor:not-allowed;opacity:.6}.cgpt-attach-btn{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #94a3b82e;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:1px;transition:background .15s,color .15s;display:flex}.cgpt-attach-btn:hover:not(:disabled){color:var(--foreground);background:#94a3b81a}.cgpt-attach-btn:disabled{opacity:.35;cursor:not-allowed}.cgpt-send-btn{background:var(--primary);color:#0f172a;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:1px;font-size:1rem;font-weight:700;transition:background .15s,opacity .15s;display:flex}.cgpt-send-btn:hover:not(:disabled){background:#7dd3fc}.cgpt-send-btn:disabled{color:var(--muted);cursor:not-allowed;background:#94a3b82e}.cgpt-footer-bar{justify-content:space-between;align-items:center;gap:.5rem;padding:0 .25rem;display:flex}.cgpt-clear-btn{color:var(--muted);cursor:pointer;opacity:.65;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.78rem;transition:opacity .15s}.cgpt-clear-btn:hover:not(:disabled){opacity:1}.cgpt-clear-btn:disabled{cursor:not-allowed}.cgpt-footer-note{color:var(--muted);opacity:.55;text-align:right;flex:1;margin:0;font-size:.74rem}.chat-typing{align-items:center;gap:4px;padding:2px 0;display:inline-flex}.chat-typing span{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite dot-bounce;display:inline-block}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}.settings-form-grid{gap:1rem;display:grid}.settings-form-footer{justify-content:flex-end;padding-top:.25rem;display:flex}.settings-save-btn{min-width:160px}.save-status{white-space:nowrap;border-radius:8px;flex-shrink:0;padding:.25rem .65rem;font-size:.82rem;font-weight:700}.save-ok{color:var(--success);background:#4ade801f;border:1px solid #4ade8040}.save-err{color:var(--danger);background:#f472b61f;border:1px solid #f472b640}.toggle-key-btn{color:var(--primary);cursor:pointer;background:0 0;border:1px solid #38bdf84d;border-radius:6px;padding:.1rem .5rem;font-size:.78rem;transition:all .15s}.toggle-key-btn:hover{background:#38bdf814}.settings-hint{color:var(--muted);font-size:.8rem;line-height:1.5}.settings-hint code{font-size:.78rem;font-family:var(--font-geist-mono,monospace);background:#94a3b81a;border:1px solid #94a3b826;border-radius:4px;padding:0 .3rem}.field input{color:var(--foreground);font:inherit;letter-spacing:.02em;background:#0f172ab3;border:1px solid #94a3b82e;border-radius:14px;padding:.95rem 1rem}.field input:focus{border-color:#38bdf8a6;outline:2px solid #38bdf859}@media (max-width:640px){.settings-form-footer{justify-content:stretch}.settings-save-btn{width:100%}}.global-nav{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#020617e0;border-bottom:1px solid #94a3b81a;position:sticky;top:0}.global-nav-inner{align-items:center;gap:.75rem;width:min(1100px,100% - 2rem);height:52px;margin:0 auto;display:flex}.nav-logo{color:var(--foreground);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:.3rem .6rem;font-size:.97rem;font-weight:800;text-decoration:none;transition:color .15s,background .15s}.nav-logo:hover{color:var(--primary);background:#38bdf814}.nav-links{flex:1;align-items:center;gap:.25rem;display:flex;overflow:visible}.nav-links a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:.3rem .65rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s}.nav-links a:hover{color:var(--foreground);background:#94a3b81a}.nav-logout-btn{flex-shrink:0;border-radius:10px!important;padding:.35rem .85rem!important;font-size:.83rem!important}.nav-dropdown{position:relative}.nav-dropdown-trigger{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:.3rem .65rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:color .15s,background .15s}.nav-dropdown-trigger:hover,.nav-dropdown:hover .nav-dropdown-trigger{color:var(--foreground);background:#94a3b81a}.nav-dropdown-menu{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:100;background:#0a0f1ef5;border:1px solid #94a3b826;border-radius:10px;flex-direction:column;gap:.1rem;min-width:160px;padding:.35rem;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 32px #00000080}.nav-dropdown-menu--open{display:flex}.nav-dropdown-menu a{color:var(--muted);white-space:nowrap;border-radius:7px;padding:.45rem .75rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s;display:block}.nav-dropdown-menu a:hover{color:var(--foreground);background:#94a3b81a}.nav-credit-badge{color:var(--primary);white-space:nowrap;background:#38bdf81a;border:1px solid #38bdf847;border-radius:999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.3rem .75rem .3rem .55rem;font-size:.83rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.nav-credit-badge:hover{color:var(--primary);background:#38bdf82e;border-color:#38bdf880;transform:translateY(-1px)}.nav-credit-badge[data-low=true]{color:var(--danger);background:#fda4af1f;border-color:#fda4af59;animation:2s ease-in-out infinite btn-pulse-danger}@keyframes btn-pulse-danger{0%,to{box-shadow:0 0 #fda4af00}50%{box-shadow:0 0 10px 2px #fda4af33}}.nav-credit-icon{font-size:.9rem;line-height:1}.nav-credit-value{letter-spacing:-.01em}.tool-card{border:1px solid var(--panel-border);cursor:pointer;text-align:left;background:#0f172a8c;border-radius:16px;flex-direction:column;align-items:flex-start;gap:.3rem;padding:1rem;transition:border-color .15s,background .15s,transform .15s;display:flex}.tool-card:hover{background:#38bdf80f;border-color:#38bdf859;transform:translateY(-2px)}.tool-card.active{background:#38bdf81f;border-color:#38bdf8b3}.tool-card-icon{margin-bottom:.15rem;font-size:1.4rem;line-height:1}.tool-card-label{color:var(--foreground);font-size:.95rem;font-weight:700}.tool-card.active .tool-card-label{color:var(--primary)}.tool-card-desc{color:var(--muted);font-size:.76rem;line-height:1.45}.tool-dropzone{cursor:pointer;background:#0f172a73;border:1.5px dashed #94a3b840;border-radius:16px;min-height:120px;transition:border-color .15s,background .15s;overflow:hidden}.tool-dropzone:hover{background:#38bdf80a;border-color:#38bdf866}.tool-dropzone.drag-over{background:#38bdf814;border-color:#38bdf8b3}@media (max-width:640px){.nav-links a span,.nav-links a{padding:.3rem .45rem;font-size:.8rem}}
