/* Shared loading treatment: quiet moving light, never an artificial percentage. */
.dogu-loading-surface{position:relative;isolation:isolate;overflow:hidden;min-height:100px;padding:76px 20px 18px!important;border:1px solid #e5e8ec;border-radius:18px;background:#f5f6f8;color:#4c5562;font-size:14px;line-height:1.6;text-align:left}
.dogu-loading-surface::before{content:"";position:absolute;z-index:-1;inset:-60%;background:radial-gradient(ellipse at 35% 40%,#cde4de 0,transparent 42%),radial-gradient(ellipse at 70% 60%,#d9def0 0,transparent 43%),linear-gradient(115deg,transparent 30%,#ffffffeb 48%,transparent 66%);filter:blur(15px);animation:dogu-light-drift 3.8s ease-in-out infinite alternate;pointer-events:none}
.dogu-loading-surface::after{content:"";position:absolute;top:24px;left:20px;width:min(58%,250px);height:30px;border-radius:8px;background:linear-gradient(100deg,#ffffff80 20%,#ffffffed 48%,#ffffff80 75%);background-size:240% 100%;box-shadow:0 10px 35px #ffffff60;animation:dogu-light-sweep 2.5s ease-in-out infinite;pointer-events:none}
.dogu-loading-inline{background:linear-gradient(100deg,#586474 25%,#aebdb8 45%,#586474 65%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:dogu-light-sweep 2.5s ease-in-out infinite}
.dogu-page-enter{animation:dogu-page-reveal .32s ease-out both}
@keyframes dogu-light-drift{from{transform:translate(-7%,-4%) rotate(-8deg)}to{transform:translate(7%,5%) rotate(12deg)}}
@keyframes dogu-light-sweep{from{background-position:180% 0}to{background-position:-80% 0}}
@keyframes dogu-page-reveal{from{opacity:.55;filter:blur(3px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.dogu-loading-surface::before,.dogu-loading-surface::after,.dogu-loading-inline,.dogu-page-enter{animation:none!important;filter:none}.dogu-loading-inline{background:none;color:#586474}}
@media(forced-colors:active){.dogu-loading-inline{background:none;color:CanvasText}.dogu-loading-surface{border:1px solid CanvasText}}
/* Visible generation-style card tied to foreground network requests. */
.dogu-request-loader[hidden]{display:none!important}
.dogu-request-loader{position:fixed;z-index:2147483000;right:24px;bottom:96px;width:min(320px,calc(100vw - 32px));padding:10px;border-radius:24px;background:#fffffff5;border:1px solid #e3e7e8;box-shadow:0 16px 60px #17243b24;pointer-events:none;font-family:inherit}
.dogu-generation-canvas{position:relative;height:136px;isolation:isolate;overflow:hidden;border-radius:16px;background:#e9eeed}
.dogu-generation-canvas i{position:absolute;inset:-45%;background:radial-gradient(ellipse at 35% 40%,#84beb4 0,transparent 44%),radial-gradient(ellipse at 75% 65%,#a4b6d6 0,transparent 42%);filter:blur(18px);animation:dogu-light-drift 3s ease-in-out infinite alternate}
.dogu-generation-canvas i:nth-child(2){animation-delay:-1.5s;opacity:.65;transform:rotate(100deg)}
.dogu-generation-canvas i:nth-child(3){background:linear-gradient(115deg,transparent 35%,#ffffffc9 50%,transparent 65%);background-size:220% 100%;animation:dogu-light-sweep 2.8s linear infinite}
.dogu-generation-canvas span{position:absolute;inset:30px;border-radius:12px;border:1px solid #ffffff80;background:#ffffff18;backdrop-filter:blur(2px)}
.dogu-request-copy{padding:14px 8px 8px;display:grid;gap:4px;color:#263731}.dogu-request-copy strong{font-size:15px;font-weight:650}.dogu-request-copy small{font-size:13px;color:#65736e}
@media(max-width:600px){.dogu-request-loader{right:16px;bottom:calc(82px + env(safe-area-inset-bottom));width:calc(100vw - 32px);max-width:340px}.dogu-generation-canvas{height:116px}}
@media(prefers-reduced-motion:reduce){.dogu-generation-canvas i{animation:none!important}}
