/* DRAGON_V1 (sandbox): left assistant panel + gold dragon pet */
:root{--dg-w:330px;--dg-rail:58px;--dg-gold:#f5b301;--dg-gold2:#d48a00;--dg-ink:#14213d}
body.dg-on.dg-open{padding-left:var(--dg-w)}body.dg-on.dg-closed{padding-left:var(--dg-rail)}
.dg-panel{position:fixed;left:0;top:0;bottom:0;width:var(--dg-w);z-index:40;background:linear-gradient(180deg,#1b2a4e 0,#14213d 60%);color:#eef2fb;display:flex;flex-direction:column;box-shadow:2px 0 14px rgba(0,0,0,.18);transition:transform .25s ease}
body.dg-closed .dg-panel{transform:translateX(-100%)}
.dg-rail{position:fixed;left:0;top:0;bottom:0;width:var(--dg-rail);z-index:39;background:#14213d;border:0;color:#fff;cursor:pointer;display:none;flex-direction:column;align-items:center;padding-top:34px;gap:8px;font:600 11px system-ui}
body.dg-on.dg-closed .dg-rail{display:flex}
.dg-rail .dg-rail-slot{width:50px;height:46px}.dg-rail small{writing-mode:vertical-rl;transform:rotate(180deg);opacity:.8;letter-spacing:1px;margin-top:6px}
.dg-head{display:flex;gap:10px;align-items:center;padding:30px 12px 8px}
.dg-home{width:104px;height:92px;flex:none;border-radius:50%;background:rgba(245,179,1,.06);border:1px dashed rgba(245,179,1,.25)}
.dg-meta{flex:1;min-width:0}.dg-meta b{font-size:15px;display:block}.dg-meta .dg-sub{font-size:12px;opacity:.85}
.dg-bar{height:7px;border-radius:5px;background:rgba(255,255,255,.15);margin-top:6px;overflow:hidden}.dg-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffd75e,#f5b301);border-radius:5px;transition:width .6s}
.dg-bar.xp i{background:linear-gradient(90deg,#8bd3ff,#4f9cf9)}
.dg-x{background:none;border:0;color:#cfd8ea;font-size:18px;cursor:pointer;align-self:flex-start;padding:2px 6px}
.dg-stats{display:flex;gap:6px;align-items:center;padding:4px 12px 8px;flex-wrap:wrap;font-size:12px}
.dg-chip{background:rgba(255,255,255,.1);border-radius:999px;padding:3px 9px;white-space:nowrap}
.dg-feed{margin-left:auto;background:linear-gradient(180deg,#ffd75e,#f5b301);color:#3a2500;border:0;border-radius:999px;font-weight:800;padding:6px 12px;cursor:pointer;position:relative;box-shadow:0 2px 0 #b27300}
.dg-feed:disabled{filter:grayscale(.8);opacity:.55;cursor:default}
.dg-feed .dg-badge{position:absolute;top:-7px;right:-7px;background:#e11d48;color:#fff;border-radius:999px;font-size:11px;min-width:19px;height:19px;line-height:19px;text-align:center;padding:0 4px}
.dg-feed:not(:disabled){animation:dg-pulse 1.6s infinite}
@keyframes dg-pulse{50%{box-shadow:0 2px 0 #b27300,0 0 0 6px rgba(245,179,1,.25)}}
.dg-tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid rgba(255,255,255,.12)}
.dg-tabs button{flex:1;background:none;border:0;color:#cfd8ea;padding:8px 4px;cursor:pointer;font-weight:600;border-bottom:2px solid transparent}
.dg-tabs button.on{color:#fff;border-color:var(--dg-gold)}
.dg-body{flex:1;overflow:auto;padding:10px 12px;font-size:13px}
.dg-msg{margin:0 0 10px;padding:8px 10px;border-radius:10px;line-height:1.4;white-space:pre-wrap;word-wrap:break-word}
.dg-msg.u{background:#2b3d66;margin-left:34px}.dg-msg.a{background:#fff;color:#1d2430}.dg-msg.sys{background:rgba(245,179,1,.15);color:#ffe9a8}
.dg-msg a{color:#1d4ed8}.dg-msg.sys a{color:#ffd75e}
.dg-res{display:block;margin:4px 0 0;padding:6px 8px;border:1px solid #e2e8f0;border-radius:8px;text-decoration:none;color:#1d2430;font-size:12px}
.dg-res:hover{background:#fff8e1}
.dg-step{display:flex;gap:8px;align-items:flex-start;padding:7px 9px;margin:6px 0;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.dg-step b{color:#ffd75e}
.dg-skip{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;padding:3px 9px;cursor:pointer;font-size:12px}
.dg-form{display:flex;gap:6px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.12)}
.dg-form input{flex:1;border-radius:8px;border:0;padding:9px 10px;font:inherit;min-width:0}
.dg-form button{background:var(--dg-gold);border:0;border-radius:8px;font-weight:700;padding:0 12px;cursor:pointer}
.dg-act{margin-top:6px;display:flex;gap:6px}.dg-act button{border:0;border-radius:6px;padding:5px 10px;cursor:pointer;font-weight:600}.dg-act .ok{background:#16a34a;color:#fff}
.dg-tbl{width:100%;border-collapse:collapse;font-size:12px}.dg-tbl th,.dg-tbl td{padding:5px 4px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}.dg-tbl tr.me td{color:#ffd75e;font-weight:700}
.dg-unl{display:flex;gap:8px;align-items:center;padding:8px;border-radius:8px;background:rgba(255,255,255,.06);margin-bottom:6px}.dg-unl.no{opacity:.5}.dg-unl span{font-size:22px}
.dg-muted{opacity:.7;font-size:12px}
/* the dragon itself: one fixed element that flies between "home" and on-screen targets */
.dg-dragon{position:fixed;left:0;top:0;width:120px;height:104px;z-index:55;cursor:pointer;will-change:transform;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}
.dg-dragon.busy{pointer-events:none}
.dg-dragon svg{width:100%;height:100%;overflow:visible}
/* DRAGON_V2_GROWTH: stage size x monthly growth (server value in --dg-grow) */
.dg-dragon{--dg-st:1;--dg-grow:1;--dg-grow-s:1}
.dg-dragon .dg-inner{width:100%;height:100%;transform-origin:50% 80%;transition:transform .9s cubic-bezier(.3,1.6,.5,1);transform:scale(calc(var(--dg-st) * var(--dg-grow)))}
.dg-dragon.st-hatchling{--dg-st:.62}.dg-dragon.st-young{--dg-st:.8}
.dg-dragon.small{--dg-st:.5}.dg-dragon.small.st-hatchling{--dg-st:.36}.dg-dragon.small.st-young{--dg-st:.44}
.dg-dragon.small .dg-inner{transform:scale(calc(var(--dg-st) * var(--dg-grow-s)))}
.dg-dragon svg{transform-origin:50% 80%}
.dg-dragon.grow-pulse svg{animation:dg-gpulse 1.2s ease-out}
.dg-dragon.grow-pulse .aura{display:inline!important;animation:dg-gaura 1.2s ease-out!important;transform-box:fill-box;transform-origin:center}
@keyframes dg-gpulse{0%{transform:scale(1)}25%{transform:scale(1.2)}45%{transform:scale(.95)}65%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes dg-gaura{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1.25)}100%{opacity:0;transform:scale(1.5)}}
/* DRAGON_V2_ART2: scepter only once it's past the hatchling stage; raised during a sale celebration */
.dg-dragon.st-hatchling .scepter{display:none}
.dg-dragon .scepter{transform-box:view-box;transform-origin:82.4px 88.4px;transition:transform .35s}
.dg-dragon.flying .scepter,.dg-dragon.grow-pulse .scepter{transform:rotate(14deg) translate(-2px,-6px)}
.dg-dragon .bob{animation:dg-bob 2.4s ease-in-out infinite}
@keyframes dg-bob{50%{transform:translateY(-5px)}}
.dg-dragon .wing{transform-box:fill-box;transform-origin:96% 92%;animation:dg-flap .7s ease-in-out infinite}
.dg-dragon .wing.b{animation-delay:-.1s;opacity:.8}
@keyframes dg-flap{50%{transform:rotate(-16deg) scaleY(.86)}}
.dg-dragon.flying .wing{animation-duration:.2s}
.dg-dragon:hover .bob{animation:dg-wiggle .5s ease-in-out}
@keyframes dg-wiggle{25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}
.dg-dragon .eye{transform-box:fill-box;transform-origin:center;animation:dg-blink 4.5s infinite}
@keyframes dg-blink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.1)}}
.dg-dragon .flame{opacity:0;transform-box:fill-box;transform-origin:0% 50%}
.dg-dragon.thinking .flame{opacity:1;animation:dg-fire .35s ease-in-out infinite alternate}
.dg-dragon.big-flame.thinking .flame{transform:scale(1.6)}
@keyframes dg-fire{from{transform:scale(.7,.8)}to{transform:scale(1.15,1.05)}}
.dg-dragon .jaw{transform-box:fill-box;transform-origin:10% 20%}
.dg-dragon.munch .jaw{animation:dg-munch .22s ease-in-out 5}
@keyframes dg-munch{50%{transform:rotate(22deg)}}
.dg-dragon .crown,.dg-dragon .saddle{display:none}.dg-dragon.has-crown .crown,.dg-dragon.has-saddle .saddle{display:inline}
.dg-dragon .brow{display:none}.dg-dragon.mood-grumpy .brow,.dg-dragon.mood-sad .brow{display:inline}
.dg-dragon.mood-sad .dg-inner{filter:saturate(.35) brightness(.9)}.dg-dragon.mood-sad .wing{animation-duration:1.8s}
.dg-dragon.mood-ecstatic svg{filter:drop-shadow(0 0 10px rgba(255,215,94,.95))}
.dg-dragon .shell{display:none}.dg-dragon.st-hatchling .shell{display:inline}
.dg-say{position:fixed;z-index:56;max-width:250px;background:#fff;color:#1d2430;border-radius:12px;padding:8px 11px;font:13px/1.35 system-ui;box-shadow:0 6px 20px rgba(0,0,0,.2);pointer-events:none;opacity:0;transition:opacity .2s}
.dg-say.on{opacity:1}
.dg-glow{outline:3px solid var(--dg-gold)!important;outline-offset:2px;box-shadow:0 0 0 6px rgba(245,179,1,.3),0 0 22px rgba(245,179,1,.7)!important;border-radius:6px;transition:box-shadow .3s}
.dg-fx{position:fixed;z-index:57;pointer-events:none;font-size:30px;line-height:1;left:0;top:0}
.dg-smoke{position:fixed;z-index:57;pointer-events:none;width:16px;height:16px;border-radius:50%;background:rgba(220,220,230,.9)}
.dg-xp{position:fixed;z-index:57;pointer-events:none;font:800 15px system-ui;color:#f5b301;text-shadow:0 1px 0 #7a4a00}
.dg-toast{position:fixed;top:64px;left:50%;transform:translateX(-50%);z-index:58;background:linear-gradient(90deg,#f5b301,#ffd75e);color:#3a2500;font:800 15px system-ui;padding:10px 18px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.25);transition:opacity .4s}
/* DRAGON_V2_ART: boss dragon parts (stage + idle smoke + aura) */
.dg-dragon .horns-stub,.dg-dragon .aura{display:none}
.dg-dragon.st-hatchling .horns-big{display:none}.dg-dragon.st-hatchling .horns-stub{display:inline}
.dg-dragon.st-hatchling .crest path:nth-child(n+3){display:none}
.dg-dragon.st-full .aura{display:inline;transform-box:fill-box;transform-origin:center;animation:dg-aura 3s ease-in-out infinite}
@keyframes dg-aura{50%{opacity:.6;transform:scale(.94)}}
.dg-dragon .wisp{transform-box:fill-box;transform-origin:50% 100%;animation:dg-wisp 2.8s ease-out infinite}
.dg-dragon .wisp.w2{animation-delay:-1.4s}
@keyframes dg-wisp{0%{opacity:0;transform:translateY(3px) scale(.6)}30%{opacity:.6}100%{opacity:0;transform:translateY(-6px) scale(1.15)}}
.dg-dragon.thinking .wisps{display:none}
.dg-dragon.mood-ecstatic .aura{display:inline}
@media (max-width:820px){body.dg-on.dg-open,body.dg-on.dg-closed{padding-left:0}.dg-panel{width:min(92vw,360px)}
 body.dg-on.dg-closed .dg-rail{top:auto;bottom:14px;left:10px;width:64px;height:64px;border-radius:50%;padding:0;justify-content:center}.dg-rail small{display:none}}
@media (prefers-reduced-motion:reduce){.dg-dragon *,.dg-feed{animation:none!important;transition:none!important}.dg-panel{transition:none}}

/* HATTRICK_V1: NBA Jam on-fire treatment when a rep sells 3+ calendar days in a row */
.dg-dragon.on-fire{filter:drop-shadow(0 0 16px rgba(255,80,0,.95)) drop-shadow(0 4px 6px rgba(0,0,0,.25))}
.dg-dragon.on-fire .flame{opacity:1;animation:dg-fire .28s ease-in-out infinite alternate;transform:scale(1.85)}
.dg-dragon.on-fire .aura{display:inline!important;animation:dg-gaura 1s ease-out infinite}
.dg-say.on-fire{background:linear-gradient(90deg,#ffb347,#ff4d00);color:#fff;font-weight:800;letter-spacing:.04em}

/* TOKEN_BANK_V1 (Seann 2026-11-06): header token badge + login Feed me dance */
.dg-bank{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;background:rgba(245,179,1,.18);color:#fff;font:800 13px/1.2 system-ui;padding:5px 11px;border-radius:999px;order:0;margin:0}
.dg-bank.on{animation:dg-bank-glow 1.6s ease-in-out infinite}
@keyframes dg-bank-glow{0%,100%{box-shadow:0 0 0 3px rgba(245,179,1,.35),0 0 14px rgba(245,179,1,.75)}50%{box-shadow:0 0 0 6px rgba(245,179,1,.18),0 0 28px rgba(255,215,94,.95)}}
.dg-feed-all{margin-left:6px;font-size:12px;padding:6px 10px}
.dg-feedme{position:fixed;inset:0;z-index:70;display:none;align-items:flex-start;justify-content:center;padding:78px 16px 16px;background:rgba(20,33,61,.38)}
.dg-feedme.on{display:flex}
.dg-feedme-card{background:#fff;color:#1d2430;border-radius:16px;padding:18px 20px;max-width:360px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.28);text-align:center}
.dg-feedme-shout{display:block;font-size:22px;color:#b45309;margin-bottom:8px}
.dg-feedme-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.dg-feedme-actions button{border:0;border-radius:8px;padding:8px 12px;font-weight:700;cursor:pointer;background:#e5e7eb}
.dg-feedme-actions .ok{background:linear-gradient(180deg,#ffd75e,#f5b301);color:#3a2500}
.dg-dragon.feed-me-dance svg{transform-origin:50% 70%;animation:dg-feedme-dance .55s ease-in-out infinite}
@keyframes dg-feedme-dance{0%{transform:rotate(-8deg) translateY(0) scale(1)}25%{transform:rotate(10deg) translateY(-12px) scale(1.06)}50%{transform:rotate(-6deg) translateY(0) scale(1)}75%{transform:rotate(8deg) translateY(-8px) scale(1.04)}100%{transform:rotate(-8deg) translateY(0) scale(1)}}
@media (prefers-reduced-motion:reduce){.dg-bank.on,.dg-dragon.feed-me-dance svg{animation:none!important}}

/* FOOD_V1: only the tossed food scales; the dragon body size is unchanged */
.dg-food{line-height:1;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}

/* DRAGON_FEEDING_V2 — sandbox preview only; effects never intercept CRM clicks. */
.dg-dragon.dg-feeding{z-index:10001;pointer-events:none!important}
.dg-toss{left:0!important;top:0!important;z-index:10002;opacity:1;pointer-events:none;will-change:transform;filter:drop-shadow(0 5px 4px #0008)}
.dg-toss svg{display:block;width:100%;height:100%;overflow:visible}
.dg-toss.roasted{filter:sepia(.9) saturate(1.6) brightness(.65) drop-shadow(0 0 8px #fa3)}
.dg-roast-fire{z-index:10003;font-size:62px;pointer-events:none;animation:dg-roast .2s ease-in-out infinite alternate}
@keyframes dg-roast{to{transform:scaleX(1.4) rotate(-12deg)}}
.dg-throat{z-index:10003;width:18px;height:16px;border-radius:50%;background:#f3bf45;border:2px solid #ac741b;pointer-events:none;animation:dg-gulp .5s ease-in-out 3}
@keyframes dg-gulp{50%{transform:translateY(14px) scale(1.5,.8)}}
.dg-struggle svg{animation:dg-struggle .3s ease-in-out 5!important}
@keyframes dg-struggle{50%{transform:rotate(-8deg) scale(1.03,.94)}}
.dg-test-controls{position:fixed;z-index:10010;right:8px;top:8px;background:#182536;color:#fff;padding:12px;border:1px solid #dfb34e;border-radius:12px;max-width:calc(100vw - 40px);font:14px system-ui}
.dg-test-controls button{margin:6px 4px 0 0;padding:8px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.dg-roast-fire,.dg-throat,.dg-struggle svg{animation:none!important}}

/* WHOLE_ANIMAL_HUNTS_V1: non-gory cartoon hunt, no clickable overlays. */
.dg-prey{font-size:inherit;line-height:1;filter:drop-shadow(0 3px 3px #0006)}
.dg-animal-body{display:block;font-size:clamp(28px,7vw,110px);font-size:inherit;animation:dg-prey-run .25s ease-in-out infinite alternate;transform-origin:center bottom}
.dg-prey .dg-animal-body{font-size:100%;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.dg-prey-caught .dg-animal-body{animation:none;transform:rotate(80deg);filter:saturate(.7)}
@keyframes dg-prey-run{to{transform:rotate(-7deg) scale(1.04,.94)}}
.dg-hunt-stars{z-index:10004;font-size:28px;pointer-events:none}
.dg-food-label{z-index:10005;pointer-events:none;background:#14213deb;color:#ffe9a6;border:1px solid #dcb75b;border-radius:8px;padding:5px 7px;font:600 12px system-ui;white-space:nowrap}
.dg-test-controls{max-width:min(520px,calc(100vw - 40px))}
.dg-test-controls input[type=number]{width:90px;padding:6px}.dg-test-controls label{display:inline-block;margin:5px}
@media(prefers-reduced-motion:reduce){.dg-animal-body{animation:none!important}}

.dg-animal-defeated{display:none}.dg-prey-caught .dg-animal-eye{display:none}.dg-prey-caught .dg-animal-defeated{display:inline}
.dg-prey .dg-animal-legs{transform-origin:50% 60%;animation:dg-prey-legs .16s ease-in-out infinite alternate}
.dg-prey-caught .dg-animal-legs{animation:none}
@keyframes dg-prey-legs{to{transform:skewX(12deg)}}
@media(prefers-reduced-motion:reduce){.dg-prey .dg-animal-legs{animation:none!important}}
/* EXEC_DRAGON_V1 */
.dg-exec{margin:6px 10px;padding:8px 10px;border:1px solid rgba(212,160,23,.45);border-radius:10px;background:rgba(212,160,23,.08);font-size:12px}
.dg-exec-h{font-weight:800;margin-bottom:4px;display:flex;justify-content:space-between;gap:6px}.dg-exec-h small{font-weight:600;opacity:.75}
.dg-exec ul{list-style:none;margin:0;padding:0}.dg-exec li{display:grid;grid-template-columns:18px 1fr auto;gap:6px;align-items:center;padding:2px 0}
.dg-exec li em{font-style:normal;opacity:.8;font-size:11px;text-align:right}.dg-exec li.bad b{color:#c0392b}.dg-exec li.na{opacity:.65}
.dg-exec-pool{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(212,160,23,.45)}

.dg-step,.dg-res{cursor:pointer}.dg-step:hover,.dg-res:hover,.dg-step:focus-visible,.dg-res:focus-visible{outline:2px solid #ffd75e;outline-offset:2px}
