.loot-btn{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md, 8px);border:1px solid rgba(216,86,143,.35);background:#d8568f14;color:#c2477d;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}[data-theme=dark] .loot-btn{color:#f08cb6;background:#d8568f1f}.loot-btn:hover{background:#d8568f29;border-color:#d8568f8c}.loot-btn:focus-visible{outline:2px solid var(--ws-focus-ring, #d8568f);outline-offset:2px}.loot-btn.is-opened{color:var(--ws-text-muted);background:transparent;border-color:var(--ws-border)}.loot-btn-lab{white-space:nowrap}.loot-dot{position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:#d8568f;box-shadow:0 0 0 2px var(--ws-bg-page, #fafaf7)}@media (prefers-reduced-motion: no-preference){.loot-btn:not(.is-opened) .loot-art{animation:lootNudge 3.2s ease-in-out infinite}}@keyframes lootNudge{0%,86%,to{transform:rotate(0)}90%{transform:rotate(-10deg)}94%{transform:rotate(8deg)}}.loot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;display:grid;place-items:center;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:lootFade .18s ease both}.loot-stage{position:relative;width:min(340px,calc(100vw - 32px));box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 22px 20px;background:var(--ws-bg-surface, #fff);border:1px solid var(--ws-border, #ece9e1);border-radius:16px;box-shadow:0 24px 64px -12px #0000004d;overflow:hidden}.loot-stage:before{content:"";position:absolute;top:-90px;left:50%;width:320px;height:220px;transform:translate(-50%);background:radial-gradient(closest-side,rgba(216,86,143,.16),transparent);pointer-events:none}.loot-x{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:999px;border:1px solid var(--ws-border);background:transparent;color:var(--ws-text-muted);cursor:pointer;display:grid;place-items:center}.loot-x:hover{background:var(--ws-bg-hover);color:var(--ws-text-primary)}.loot-big{position:relative;color:#d8568f}[data-theme=dark] .loot-big{color:#f08cb6}.loot-big.is-shake{animation:lootShake .7s ease both}.loot-burst{position:absolute;top:60px;left:50%;width:0;height:0;pointer-events:none}.loot-burst i{position:absolute;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#d8568f;opacity:0}.loot-burst i:nth-child(3n){background:#f6b04d}.loot-burst i:nth-child(3n+1){background:#f4a8c0}.loot-burst.is-on i{animation:lootSpark .8s var(--d) cubic-bezier(.2,.9,.3,1) both}.loot-card{position:relative;width:100%;text-align:center;animation:lootRise .4s .1s ease both}.loot-card-eyebrow{display:block;margin-bottom:8px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-text-muted)}.loot-card b{display:block;font-family:Fraunces,serif;font-size:21px;font-weight:500;letter-spacing:-.01em;color:var(--ws-text-primary)}.loot-card p{margin:6px 0 12px;font-size:13.5px;line-height:1.5;color:var(--ws-text-secondary)}.loot-card small{font-size:11.5px;color:var(--ws-text-muted)}@keyframes lootFade{0%{opacity:0}to{opacity:1}}@keyframes lootShake{0%{transform:rotate(0)}20%{transform:rotate(-7deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(2deg) scale(1.04)}to{transform:rotate(0) scale(1.04)}}@keyframes lootSpark{0%{transform:rotate(var(--a)) translateY(0) scale(.4);opacity:0}30%{opacity:1}to{transform:rotate(var(--a)) translateY(-70px) scale(1);opacity:0}}@keyframes lootRise{0%{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.loot-big.is-shake,.loot-burst.is-on i,.loot-card{animation:none!important}}.loot-card b{display:inline-flex;align-items:center;justify-content:center;gap:8px}.loot-card b .loot-card-ico{color:#d8568f;flex:none}@media (prefers-reduced-motion: no-preference){.loot-art.is-open .loot-glow{animation:lootGlowLines 1.4s ease-in-out infinite}}@keyframes lootGlowLines{0%,to{opacity:.35}50%{opacity:1}}.loot-reward{margin:-4px 0 10px}.loot-pts{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#c2477d;background:#d8568f1f}.loot-pts b{color:#b45309}.loot-pts.is-off{font-weight:500;color:var(--ws-text-muted);background:var(--ws-bg-hover)}.loot-week{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.loot-week li{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;text-transform:capitalize;color:var(--ws-text-muted)}.loot-week li i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:9px;font-weight:800;border:1.5px dashed var(--ws-border)}.loot-week li.is-opened i{border:0;background:#d8568f;color:#fff}.loot-week li.is-opened:not(.is-bonus) i:after{content:"✓";font-size:11px}.loot-week li.is-bonus i{border-color:#f6b04d;color:#b45309}.loot-week li.is-bonus.is-opened i{background:linear-gradient(135deg,#f6b04d,#d8568f);color:#fff}.loot-week li.is-off i{border-style:solid;opacity:.35}.loot-week li.is-today span{color:var(--ws-text-primary);font-weight:700}.loot-btn{padding:0;width:34px;height:32px;justify-content:center}.loot-btn .loot-art{width:18px;height:18px}.af{position:relative;display:inline-flex;flex:none;vertical-align:middle;border-radius:50%;isolation:isolate}.af>img:not(.af-art),.af>div,.af>span:not(.af-ribbon){border-radius:50%}.af-art{position:absolute;z-index:1;pointer-events:none;overflow:visible;max-width:none}.af-orbit{transform-box:view-box;transform-origin:50% 50%}@media (prefers-reduced-motion: no-preference){.af.is-animated .af-orbit{animation:afSpin 9s linear infinite}}@keyframes afSpin{to{transform:rotate(360deg)}}.af-ribbon{position:absolute;z-index:2;left:50%;bottom:-8px;transform:translate(-50%);padding:1px 6px;border-radius:999px;white-space:nowrap;pointer-events:none;font-size:max(8px,calc(var(--af-size) * .13));font-weight:800;letter-spacing:.04em;line-height:1.4;color:#4a3410;background:linear-gradient(135deg,#fff3b0,#f6c35a);box-shadow:0 1px 3px #0003}.af-champ-silver .af-ribbon{color:#2d3640;background:linear-gradient(135deg,#fff,#cfd6de)}.af-champ-bronze .af-ribbon{color:#3d2210;background:linear-gradient(135deg,#ffd7b0,#d08a52)}.pfp-note{margin:0;font-size:13px;color:var(--ws-text-secondary)}.pfp-list{display:flex;flex-wrap:wrap;gap:10px}.pfp-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;width:92px;padding:14px 6px 10px;border-radius:12px;cursor:pointer;font:inherit;border:1px solid var(--ws-border);background:var(--ws-bg-surface, #fff);color:var(--ws-text-primary)}.pfp-item:hover:not(:disabled){background:var(--ws-bg-hover)}.pfp-item:disabled{cursor:default}.pfp-item.is-on{border-color:#d8568f;box-shadow:0 0 0 3px #d8568f24}.pfp-art{display:grid;place-items:center;width:56px;height:56px}.pfp-name{font-size:11.5px;font-weight:600;line-height:1.25;text-align:center}.pfp-tick{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#d8568f}.pfp .cf-face,.pfp-item .cf-face{display:inline-block;border-radius:50%;object-fit:cover}.pfp-item .cf-face-ini{display:inline-grid;place-items:center;font-weight:700;color:#c2477d;background:#d8568f24}.pfp-item{width:108px}.pfp-sub{font-size:10.5px;line-height:1.3;color:var(--ws-text-muted);text-align:center}.pfp-item.is-locked{cursor:not-allowed;background:var(--ws-bg-hover)}.pfp-item.is-locked .pfp-art{opacity:.55}.pfp-item.is-locked .pfp-name{color:var(--ws-text-secondary)}.pfp-art{position:relative}.pfp-lock{position:absolute;right:4px;bottom:4px;z-index:3;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--ws-text-muted, #888);box-shadow:0 0 0 2px var(--ws-bg-hover, #f5f3ed)}.pfp-hint{margin-top:10px;font-size:12px;color:var(--ws-text-muted)}.pfg{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 760px){.pfg{grid-template-columns:1fr}}.pfg-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:22px 16px 18px;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#d8568f1a,#d8568f05 70%),var(--ws-bg-surface, #fff);border:1px solid var(--ws-border)}.pfg-stage.pfg-tier-rare{background:linear-gradient(180deg,rgba(224,103,156,.16),transparent 70%),var(--ws-bg-surface, #fff)}.pfg-stage.pfg-tier-epic{background:linear-gradient(180deg,rgba(109,75,216,.14),transparent 70%),var(--ws-bg-surface, #fff)}.pfg-stage.pfg-tier-legend{background:linear-gradient(180deg,rgba(246,195,90,.2),rgba(180,144,202,.08) 60%,transparent),var(--ws-bg-surface, #fff)}.pfg-big{position:relative;display:grid;place-items:center;width:124px;height:124px;margin-bottom:6px}.pfg-stage.is-locked .pfg-big .af>img,.pfg-stage.is-locked .pfg-big .af>span:first-child{filter:grayscale(.5)}.pfg-big-lock{position:absolute;right:8px;bottom:8px;z-index:3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--ws-text-muted, #888);box-shadow:0 0 0 3px var(--ws-bg-surface, #fff)}.pfg-name{font-family:Fraunces,serif;font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ws-text-primary)}.pfg-tier{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-text-muted)}.pfg-tier-rare .pfg-tier{color:#c2477d}.pfg-tier-epic .pfg-tier{color:#6d4bd8}.pfg-tier-legend .pfg-tier{color:#b7791f}.pfg-rule{font-size:12px;line-height:1.4;color:var(--ws-text-secondary)}.pfg-bar{position:relative;width:80%;height:6px;margin:6px 0 12px;border-radius:6px;background:var(--ws-border)}.pfg-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:#d8568f}.pfg-bar em{position:absolute;left:0;right:0;top:9px;font-style:normal;font-size:10.5px;font-weight:700;color:var(--ws-text-muted)}.pfg-btn{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;padding:0 18px;border-radius:999px;font:inherit;font-size:13px;font-weight:700;border:1px solid transparent}.pfg-btn.is-go{cursor:pointer;color:#fff;background:linear-gradient(135deg,#e0679c,#c2477d);box-shadow:0 6px 16px #d8568f47}.pfg-btn.is-go:disabled{opacity:.6;cursor:default;box-shadow:none}.pfg-btn.is-on{color:#16803c;background:#22a05e1a}[data-theme=dark] .pfg-btn.is-on{color:#4ade80}.pfg-btn.is-locked{color:var(--ws-text-muted);background:var(--ws-bg-hover);border-color:var(--ws-border)}.pfg-err{color:#b91c1c;font-size:11.5px}.pfg-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-text-muted)}.pfg-count{letter-spacing:0;text-transform:none;font-weight:600;font-size:12px}.pfg-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.pfg-tile{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px 10px;border-radius:14px;cursor:pointer;font:inherit;color:var(--ws-text-primary);border:1px solid var(--ws-border);background:var(--ws-bg-surface, #fff);transition:border-color .15s,box-shadow .15s}.pfg-tile:hover{border-color:#d8568f73}.pfg-tile.is-sel{border-color:#d8568f;box-shadow:0 0 0 3px #d8568f26}.pfg-tile.is-locked{background:var(--ws-bg-hover)}.pfg-tile.is-locked .pfg-tile-art{opacity:.6}.pfg-tile-art{position:relative;display:grid;place-items:center;width:70px;height:70px}.pfg-tile-lock{position:absolute;right:4px;bottom:4px;z-index:3;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--ws-text-muted, #888);box-shadow:0 0 0 2px var(--ws-bg-hover, #f5f3ed)}.pfg-tile-name{font-size:12.5px;font-weight:700;line-height:1.2}.pfg-tile-tier{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-text-muted)}.pfg-tile.pfg-tier-rare .pfg-tile-tier{color:#c2477d}.pfg-tile.pfg-tier-epic .pfg-tile-tier{color:#6d4bd8}.pfg-tile.pfg-tier-legend .pfg-tile-tier{color:#b7791f}.pfg-tick{position:absolute;top:7px;right:7px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#22a05e}.pfg-new{position:absolute;top:7px;left:7px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#f6b04d,#d8568f)}.af-orbit-img{position:absolute;z-index:2;pointer-events:none}.af-orbit-img i{position:absolute;left:50%;top:13%;width:5%;height:5%;margin:-2.5% 0 0 -2.5%;border-radius:50%;background:radial-gradient(circle,#fff 0,#fff 30%,#fff3b0d9 45%,#ffdc7800 72%)}@media (prefers-reduced-motion: no-preference){.af-orbit-img{animation:afSpin 9s linear infinite}}.af-ribbon{display:inline-flex;align-items:center;gap:4px;letter-spacing:.06em}.af-ribbon b{font-weight:900}.af-title{position:absolute;z-index:2;left:50%;transform:translate(-50%);pointer-events:none;white-space:nowrap;font-family:Fraunces,serif;font-style:italic;font-weight:600;letter-spacing:.01em;line-height:1;font-size:max(12px,calc(var(--af-size) * .17));background:linear-gradient(180deg,#f7d77a,#b8860b);-webkit-background-clip:text;background-clip:text;color:transparent}.af-champ-silver .af-title{background-image:linear-gradient(180deg,#e9eef3,#7d8794)}.af-champ-bronze .af-title{background-image:linear-gradient(180deg,#f2b98a,#8f4f22)}.af-ribbon b{display:none}.pfg-tile-lock{top:0;right:0;bottom:auto}.pfg-big-lock{top:4px;right:4px;bottom:auto}.af-shine{position:absolute;z-index:2;pointer-events:none;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background:linear-gradient(115deg,transparent 0 38%,rgba(255,255,255,.85) 47%,rgba(255,246,200,.95) 50%,rgba(255,255,255,.85) 53%,transparent 62% 100%);background-size:300% 300%;background-position:120% 120%;mix-blend-mode:screen;opacity:.9}.af-orbit-img{display:none}@media (prefers-reduced-motion: no-preference){.af.is-animated .af-shine{animation:afShine 4.2s ease-in-out infinite}.af.is-animated>.af-art{animation:afGlow 4.2s ease-in-out infinite}}@keyframes afShine{0%{background-position:120% 120%}55%,to{background-position:-20% -20%}}@keyframes afGlow{0%,to{filter:drop-shadow(0 0 0 rgba(246,195,90,0))}50%{filter:drop-shadow(0 0 4px rgba(246,195,90,.55))}}.pfg-big{position:static;width:auto;height:auto;min-height:124px;margin-bottom:8px}.pfg-stage .pfg-big-lock{position:absolute;top:12px;right:12px;bottom:auto;left:auto}.pfg-tile-art{width:auto;height:auto;min-height:70px}.pfg-tile{padding-top:10px}.pfg-tile .pfg-tile-lock{position:absolute;top:7px;right:7px;bottom:auto}.pfg-tile-art{position:static}.af>:not(.af-art):not(.af-shine):not(.af-title):not(.af-ribbon){transform:scale(var(--af-photo, .68));transform-origin:50% 50%}.af-ribbon{bottom:-7px}.pfg-big{min-height:150px;padding-top:14px}.pfg-tile-art{min-height:76px}.pfg-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;align-items:stretch}.pfg-tile{height:100%;padding:12px 4px 10px;gap:3px;justify-content:flex-start}.pfg-tile-art{min-height:72px;display:grid;place-items:center;margin-bottom:4px}.pfg-tile-name{font-size:12.5px}.pfg-tile-tier{font-size:9px}.pfg-tile .pfg-tile-lock{top:6px;right:6px;width:18px;height:18px}.pfg-tick{top:6px;right:6px}.pfg-name,.pfg-rule{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.af.is-soft .af-shine{background:linear-gradient(115deg,transparent 0 40%,rgba(235,244,255,.7) 48%,rgba(255,255,255,.85) 50%,rgba(235,244,255,.7) 52%,transparent 60% 100%);background-size:300% 300%;opacity:.75}@media (prefers-reduced-motion: no-preference){.af.is-soft .af-shine{animation-duration:6.5s}.af.is-soft>.af-art{animation:afGlowSilver 6.5s ease-in-out infinite}}@keyframes afGlowSilver{0%,to{filter:drop-shadow(0 0 0 rgba(160,190,230,0))}50%{filter:drop-shadow(0 0 3px rgba(160,190,230,.5))}}.af-ribbon{font-family:Cinzel,Cormorant Garamond,Georgia,serif;font-weight:700;letter-spacing:.1em;padding:1px 7px 0;line-height:1.45;font-size:max(8.5px,calc(var(--af-size) * .14));text-shadow:0 1px 0 rgba(255,255,255,.45);border:1px solid rgba(120,80,10,.25)}.af-champ-silver .af-ribbon{border-color:#3c4b5f38}.af-champ-bronze .af-ribbon{border-color:#5a2d0f40}.pfg-stage{min-height:330px;box-sizing:border-box}.pfg-stage .pfg-big{height:168px;min-height:0}.pfg-stage .pfg-btn{margin-top:auto}.pfg-stage.is-locked .pfg-big .af>img,.pfg-stage.is-locked .pfg-big .af>span:first-child{filter:none}.pfg-tile.is-locked .pfg-tile-art{opacity:1}.pfg-tile.is-locked{background:var(--ws-bg-surface, #fff)}.pfg{grid-template-columns:1fr}.pfg-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-width:560px}.pfg-bar-row{margin-top:12px;max-width:560px;display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border-radius:12px;border:1px solid var(--ws-border);background:var(--ws-bg-surface, #fff)}.pfg-bar-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.pfg-bar-text b{font-size:13.5px;color:var(--ws-text-primary)}.pfg-bar-text span{font-size:12px;color:var(--ws-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pfg-bar-row .pfg-btn{margin-top:0;flex:none;height:32px}.af-crown{position:absolute;z-index:2;pointer-events:none;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background:radial-gradient(ellipse 34% 22% at 50% 10%,#fff0bef2,#ffc87800 70%);mix-blend-mode:screen;opacity:0}@media (prefers-reduced-motion: no-preference){.af.is-strong .af-crown{animation:afCrown 4.2s ease-in-out infinite}}@keyframes afCrown{0%,to{opacity:0}50%{opacity:.9}}.pfg-head{align-items:center;gap:10px}.af.is-shine .af-shine{background:linear-gradient(115deg,transparent 0 40%,rgba(255,255,255,.75) 48%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.75) 52%,transparent 60% 100%);background-size:300% 300%;opacity:.8}.af.is-orbit .af-orbit-img{display:block}.af.is-orbit .af-orbit-img i{background:radial-gradient(circle,#fff 0 30%,color-mix(in srgb,var(--af-glow, #b8a6ff) 85%,transparent) 45%,transparent 72%)}@media (prefers-reduced-motion: no-preference){.af.is-shine .af-shine{animation:afShine 5.5s ease-in-out infinite}.af.is-shine>.af-art,.af.is-glow>.af-art{animation:afGlowAny 4.8s ease-in-out infinite}.af.is-prism>.af-art{animation:afPrism 8s ease-in-out infinite}.af.is-orbit .af-orbit-img{animation:afSpin 10s linear infinite}}@keyframes afGlowAny{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 5px var(--af-glow, #f4a8c0))}}@keyframes afPrism{0%,to{filter:hue-rotate(0deg) drop-shadow(0 0 2px var(--af-glow, #9ec5ff))}50%{filter:hue-rotate(40deg) drop-shadow(0 0 5px var(--af-glow, #9ec5ff))}}.pfg-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.af.is-small{transform:scale(1.1);z-index:2}.pfg-needphoto{grid-column:1 / -1;margin:0 0 10px;padding:10px 12px;border-radius:10px;font-size:12.5px;color:var(--ws-text-secondary);background:var(--ws-bg-hover);border:1px dashed var(--ws-border)}.pfg-tile.pfg-tile-browse{border:1px dashed rgba(216,86,143,.55);background:linear-gradient(160deg,rgba(216,86,143,.08),transparent 70%),var(--ws-bg-surface, #fff)}.pfg-tile.pfg-tile-browse:hover{border-style:solid;border-color:#d8568f;box-shadow:0 0 0 3px #d8568f1f}.pfg-tile-browse .pfg-tile-name{color:#c2477d}.pfg-browse-face{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;color:#c2477d;background:#d8568f1a}[data-theme=dark] .pfg-tile-browse .pfg-tile-name,[data-theme=dark] .pfg-browse-face{color:#f0a3c4}.pfg-soon{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}.pfg-soon small{font-size:10.5px;color:var(--ws-text-muted)}.pfg-soon .pfg-btn:disabled{opacity:.55;cursor:not-allowed}.cfd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000073;animation:cfd-fade .12s ease-out}.cfd-box{width:100%;max-width:400px;padding:20px 20px 16px;background:var(--ws-bg-surface);color:var(--ws-text-primary);border:1px solid var(--ws-border);border-radius:14px;box-shadow:0 18px 48px #0000004d;animation:cfd-pop .14s ease-out}.cfd-title{margin:0;font-size:17px;font-weight:600;line-height:1.3;color:var(--ws-text-primary)}.cfd-message{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ws-text-muted);white-space:pre-line;overflow-wrap:anywhere}.cfd-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.cfd-btn{min-height:38px;padding:0 16px;font:inherit;font-size:14px;font-weight:600;border-radius:9px;border:1px solid var(--ws-border);cursor:pointer}.cfd-btn:focus-visible{outline:2px solid var(--ws-focus-ring);outline-offset:2px}.cfd-btn-cancel{background:var(--ws-bg-elev);color:var(--ws-text-secondary)}.cfd-btn-cancel:hover{background:var(--ws-bg-hover)}.cfd-btn-primary{background:var(--ws-text-primary);color:var(--ws-bg-surface);border-color:var(--ws-text-primary)}.cfd-btn-primary:hover{opacity:.88}.cfd-btn-danger{background:var(--ws-danger);color:var(--ws-bg-surface);border-color:var(--ws-danger)}.cfd-btn-danger:hover{filter:brightness(.92)}@media (max-width: 600px){.cfd-overlay{align-items:flex-end;padding:0}.cfd-box{max-width:none;border-radius:16px 16px 0 0;border-bottom:0;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));animation:cfd-sheet .18s ease-out}.cfd-actions{flex-direction:column-reverse}.cfd-btn{width:100%;min-height:46px}}@keyframes cfd-fade{0%{opacity:0}to{opacity:1}}@keyframes cfd-pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes cfd-sheet{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion: reduce){.cfd-overlay,.cfd-box{animation:none}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}:focus-visible{outline:2px solid var(--ws-focus-ring, #1a1a1a);outline-offset:2px;border-radius:2px}:root{--primary: #7b68ee;--primary-dark: #6858d8;--primary-light: #9b8ef8;--secondary: #8b5cf6;--success: #49ccf9;--warning: #ffc800;--danger: #f06565;--info: #4194ff;--bg-primary: var(--ws-bg-page);--bg-secondary: var(--ws-bg-surface);--bg-tertiary: var(--ws-bg-hover);--bg-hover: var(--ws-bg-hover);--text-primary: var(--ws-text-primary);--text-secondary: var(--ws-text-muted);--text-muted: var(--ws-text-muted);--border-color: var(--ws-border);--border-light: #4e5258;--sidebar-width: 240px;--header-height: 56px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 2px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 14px;--radius-full: 9999px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--ws-bg-page, #fafaf7);color:var(--ws-text-primary, #1a1a1a);line-height:1.5;font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.design-notice-banner{position:sticky;top:0;z-index:100;display:flex;align-items:flex-start;gap:14px;padding:12px 24px 12px 21px;background:#fff;color:#4b5563;border-bottom:1px solid #ece9e1;border-left:3px solid #f4a8c0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";font-size:13.5px;line-height:1.55;-webkit-font-smoothing:antialiased;box-shadow:0 1px #00000005}.design-notice-emoji{font-size:16px;line-height:1;flex-shrink:0;padding-top:2px}.design-notice-body{flex:1;min-width:0}.design-notice-body strong{font-weight:600;color:#1a1a1a}.design-notice-body em{font-family:Fraunces,serif;font-style:italic;font-weight:500;color:#1a1a1a}.design-notice-body a{color:#f4a8c0;font-weight:600;text-decoration:none}.design-notice-body a:hover{text-decoration:underline;text-underline-offset:2px}.design-notice-x{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;font-size:20px;line-height:1;border-radius:6px;color:#9ca3af;background:none;border:none;cursor:pointer;font-family:inherit;transition:color .12s,background .12s}.design-notice-x:hover{color:#1a1a1a;background:#0000000d}@media (max-width: 720px){.design-notice-banner{padding:10px 14px 10px 11px;font-size:12.5px;gap:10px}.design-notice-emoji{font-size:15px}}.app-layout{display:flex;height:100%;min-width:0}.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;transition:margin-left .2s ease;position:relative;z-index:1;overflow:hidden;min-width:0;height:100%}.sidebar-collapsed .main-content,.sidebar-auto-collapsed .main-content{margin-left:60px}.page-content{flex:1;padding:16px 20px;overflow-y:auto;overflow-x:hidden;height:100%;min-width:0}.page-content::-webkit-scrollbar{width:8px}.page-content::-webkit-scrollbar-track{background:transparent}.page-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.page-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.page-content.no-header{padding-top:0}.page-content:has(>.loading:only-child){background:#fafaf7;overflow:hidden}[data-theme=dark] .page-content:has(>.loading:only-child){background:var(--ws-bg-page)}@media (max-width: 1200px) and (min-width: 768px){.main-content{min-width:700px}.page-content{padding:14px 16px}}@media (max-width: 1200px){.sidebar-collapsed .main-content,.sidebar-auto-collapsed .main-content{min-width:680px}}@media (max-width: 768px){html,body{overflow-x:hidden}.app-layout{min-width:0}.app-layout .main-content{margin-left:0!important;min-width:0;width:100%}.page-content{padding:12px 14px}}.mobile-topbar{display:none}@media (max-width: 768px){.mobile-topbar{display:flex;align-items:center;gap:12px;height:52px;padding:0 14px;background:#fafaf7;border-bottom:1px solid #ece9e1;position:sticky;top:0;z-index:90}.mobile-topbar-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#fff;border:1px solid #ece9e1;color:#1a1a1a;cursor:pointer;flex-shrink:0}.mobile-topbar-btn:hover{background:#f3f1ea}.mobile-topbar-brand{font-family:Fraunces,serif;font-size:18px;font-weight:500;letter-spacing:-.015em;color:#1a1a1a}}.mobile-nav-backdrop{display:none}@media (max-width: 768px){.mobile-nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1a5c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1099;animation:mobileNavFadeIn .18s ease-out}}@keyframes mobileNavFadeIn{0%{opacity:0}to{opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;border-radius:6px;border:none;transition:all .2s;cursor:pointer;position:relative;overflow:hidden}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0000000d}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 8px #6366f14d;transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);box-shadow:0 1px 2px #0000000d}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary);transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 1px 2px #0000000d}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 8px #ef44444d;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:14px}.btn-icon{padding:8px;border-radius:var(--radius-md)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 700px){.form-row{grid-template-columns:1fr;gap:14px}}.form-group:last-child{margin-bottom:0}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number],.form-group input[type=tel],.form-group input[type=url],.form-group input[type=search],.form-group textarea,.modal-form input[type=text],.modal-form input[type=email],.modal-form input[type=password],.modal-form input[type=number],.modal-form input[type=tel],.modal-form input[type=url],.modal-form input[type=search],.modal-form textarea{width:100%;padding:10px 12px;font-size:13px;background:var(--ws-bg-surface, var(--bg-tertiary));border:1px solid var(--ws-border, var(--border-light));border-radius:var(--radius-md);color:var(--ws-text-primary, var(--text-primary));transition:all .2s;box-sizing:border-box}.form-group input:hover:not(:disabled):not(:focus),.modal-form input:hover:not(:disabled):not(:focus),.form-group textarea:hover:not(:disabled):not(:focus),.modal-form textarea:hover:not(:disabled):not(:focus){border-color:var(--ws-text-muted, var(--text-muted));background:var(--ws-bg-hover, var(--bg-hover))}.form-group input:focus,.modal-form input:focus,.form-group textarea:focus,.modal-form textarea:focus{outline:none;border-color:var(--primary);background:var(--ws-bg-surface, var(--bg-secondary));box-shadow:0 0 0 3px #6366f126}.form-group input::placeholder,.modal-form input::placeholder,.form-group textarea::placeholder,.modal-form textarea::placeholder{color:var(--text-muted);opacity:.7}.form-label{display:block;margin-bottom:4px;font-size:12.5px;font-weight:600;color:var(--ws-text-secondary, #4b5563)}.form-input{width:100%;padding:10px 12px;font-size:13px;background:var(--ws-bg-surface, var(--bg-tertiary));border:1px solid var(--ws-border, var(--border-light));border-radius:var(--radius-md);color:var(--ws-text-primary, var(--text-primary));transition:all .2s;text-indent:0;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:hover:not(:disabled):not(:focus){border-color:var(--ws-text-muted, var(--text-muted));background:var(--ws-bg-hover, var(--bg-hover))}.form-input:focus{outline:none;border-color:var(--primary);background:var(--ws-bg-surface, var(--bg-secondary));box-shadow:0 0 0 3px #6366f126,0 1px 3px #0000001a;transform:translateY(-1px)}.form-input:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-secondary)}.form-input::placeholder{color:var(--text-muted);opacity:.7}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;transition:opacity .2s;border-radius:4px;padding:2px}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}.form-select{width:100%;padding:8px 10px;font-size:13px;background:var(--ws-bg-surface, var(--bg-tertiary));border:1px solid var(--ws-border, var(--border-color));border-radius:var(--radius-md);color:var(--ws-text-primary, var(--text-primary));cursor:pointer;transition:all .2s}.form-select:hover:not(:disabled){border-color:var(--ws-text-muted, var(--text-muted));background:var(--ws-bg-hover, var(--bg-hover))}.form-select:focus{outline:none;border-color:var(--primary);background:var(--ws-bg-surface, var(--bg-secondary));box-shadow:0 0 0 3px #6366f126,0 1px 3px #0000001a}.form-select:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-secondary)}.form-textarea{width:100%;padding:8px 10px;font-size:13px;background:var(--ws-bg-surface, var(--bg-tertiary));border:1px solid var(--ws-border, var(--border-color));border-radius:var(--radius-md);color:var(--ws-text-primary, var(--text-primary));min-height:80px;resize:vertical;transition:all .2s;line-height:1.5;text-indent:0;box-sizing:border-box}.form-textarea:hover:not(:disabled):not(:focus){border-color:var(--ws-text-muted, var(--text-muted));background:var(--ws-bg-hover, var(--bg-hover))}.form-textarea:focus{outline:none;border-color:var(--primary);background:var(--ws-bg-surface, var(--bg-secondary));box-shadow:0 0 0 3px #6366f126,0 1px 3px #0000001a}.form-textarea:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-secondary);resize:none}.form-textarea::placeholder{color:var(--text-muted);opacity:.7}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.card-header{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:14px;font-weight:600}.card-body{padding:16px}.badge{display:inline-flex;align-items:center;padding:3px 8px;font-size:11px;font-weight:500;border-radius:var(--radius-full)}.badge-primary{background:#6366f133;color:var(--primary-light)}.badge-success{background:#22c55e33;color:#4ade80}.badge-warning{background:#f59e0b33;color:#fbbf24}.badge-danger{background:#ef444433;color:#f87171}.badge-info{background:#3b82f633;color:#60a5fa}.status-pending{background:#6b728033;color:#9ca3af}.status-in_progress{background:#3b82f633;color:#60a5fa}.status-review{background:#a855f733;color:#c084fc}.status-completed{background:#22c55e33;color:#4ade80}.priority-low{background:#6b728033;color:#9ca3af}.priority-medium{background:#3b82f633;color:#60a5fa}.priority-high{background:#f59e0b33;color:#fbbf24}.priority-critical{background:#ef444433;color:#f87171}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff!important;font-weight:600;text-transform:uppercase;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;cursor:pointer;position:relative;line-height:1}.avatar:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.avatar-xs{width:24px;height:24px;font-size:10px}.avatar-sm{width:28px;height:28px;font-size:11px;font-weight:600}.avatar-md{width:44px;height:44px;font-size:16px;font-weight:600}.avatar-lg{width:52px;height:52px;font-size:20px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .12s ease-out;overflow-y:auto;will-change:opacity}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal{background:var(--ws-bg-surface);color:var(--ws-text-primary);border-radius:var(--radius-lg);border:1px solid var(--ws-border);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out;box-shadow:0 20px 50px #0000004d}.modal.modal-large{max-width:750px;max-height:95vh}.modal.modal-small{max-width:400px}.modal-header{padding:12px 16px;border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:15px;font-weight:600}.modal-close{background:none;border:none;color:var(--ws-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--ws-text-primary)}.modal-body{padding:16px}.modal-footer{padding:12px 16px;border-top:1px solid var(--ws-border);display:flex;justify-content:flex-end;gap:10px}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:6px;min-width:180px;max-height:300px;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026,0 0 0 1px #0000000d;z-index:2000;animation:dropdownFadeIn .2s ease-out;padding:4px}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s;border-radius:6px}.dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary);transform:translate(2px)}.dropdown-item:active{transform:scale(.98)}.dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{width:64px;height:64px;margin:0 auto 16px;color:var(--text-muted)}.empty-state-title{font-size:18px;font-weight:600;margin-bottom:8px}.empty-state-description{color:var(--text-secondary);margin-bottom:24px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 24px;background:#fafaf7;color:#1a1a1a;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.spinner-small{width:16px;height:16px;border:2px solid #ece9e1;border-top-color:#f4a8c0;border-radius:50%;animation:spin .9s linear infinite}.toast-container{position:fixed;bottom:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:10px}.toast{padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;min-width:300px;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--info)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-sm{font-size:13px}.text-muted{color:var(--text-secondary)}.text-center{text-align:center}.w-full{width:100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-hover) 50%,var(--bg-tertiary) 100%);background-size:1000px 100%;animation:shimmer 2s infinite linear;border-radius:var(--radius-md);position:relative;overflow:hidden}.skeleton-text{height:14px;margin-bottom:8px;border-radius:4px}.skeleton-text.skeleton-title{height:20px;width:60%}.skeleton-text.skeleton-subtitle{height:16px;width:80%}.skeleton-text.skeleton-line{height:12px;width:100%}.skeleton-text.skeleton-line-short{height:12px;width:70%}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.skeleton-avatar.skeleton-avatar-sm{width:28px;height:28px}.skeleton-avatar.skeleton-avatar-xs{width:24px;height:24px}.skeleton-button{height:36px;width:80px;border-radius:var(--radius-md)}.skeleton-card{padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:12px}.skeleton-table-row{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid #ece9e1;border-top-color:#f4a8c0;border-radius:50%;animation:spin .8s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-lg{width:36px;height:36px;border-width:3px}.editorial-dots{display:inline-flex;gap:6px}.editorial-dots span{width:8px;height:8px;border-radius:50%;background:#f4a8c0;animation:editorialDot 1s ease-in-out infinite}.editorial-dots span:nth-child(2){animation-delay:.15s}.editorial-dots span:nth-child(3){animation-delay:.3s}@keyframes editorialDot{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .2s ease-out}.loading-overlay-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 32px;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000004d}.loading-overlay-text{font-size:14px;color:var(--text-secondary);font-weight:500}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton-kanban-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:8px}.skeleton-kanban-card .skeleton-text:first-child{height:18px;width:80%;margin-bottom:10px}.skeleton-kanban-card-footer{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.progress-bar{width:100%;height:4px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--primary);border-radius:var(--radius-full);transition:width .3s ease}.progress-bar-indeterminate{position:absolute;top:0;left:0;height:100%;width:30%;background:var(--primary);border-radius:var(--radius-full);animation:progressIndeterminate 1.5s ease-in-out infinite}@keyframes progressIndeterminate{0%{left:-30%}to{left:100%}}.loading-dots{display:inline-flex;align-items:center;gap:4px}.loading-dot{width:6px;height:6px;background:var(--text-muted);border-radius:50%;animation:loadingDotBounce 1.4s infinite ease-in-out both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}@keyframes loadingDotBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.global-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);max-width:min(90vw,460px);padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:500;color:#fff;background:#1a1a1a;z-index:99999;animation:global-toast-slide-in .2s ease;box-shadow:0 8px 24px -6px #00000059;display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-toast-close{background:transparent;border:none;color:#fff;font-size:18px;cursor:pointer;opacity:.7;padding:0;line-height:1;transition:opacity .2s}.global-toast-close:hover{opacity:1}.global-toast-error,.global-toast-success,.global-toast-info{background:#1a1a1a}@keyframes global-toast-slide-in{0%{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%);opacity:1}}.server-status-banner{display:flex;align-items:center;gap:10px;padding:10px 20px;background:linear-gradient(90deg,#dc2626,#b91c1c);color:#fff;font-size:13px;font-weight:500;animation:server-banner-slide-down .3s ease;z-index:100;flex-shrink:0}.server-status-banner svg{flex-shrink:0;animation:server-banner-pulse 2s ease-in-out infinite}@keyframes server-banner-slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.server-banner-close{background:transparent;border:none;color:#fff;font-size:18px;cursor:pointer;margin-left:auto;padding:0 4px;opacity:.7;line-height:1}.server-banner-close:hover{opacity:1}.server-restarting-banner{background:linear-gradient(90deg,#2563eb,#1d4ed8)}.server-slow-banner{background:linear-gradient(90deg,#d97706,#b45309)}@keyframes server-banner-pulse{0%,to{opacity:1}50%{opacity:.5}}:root{--ws-bg-page: #fafaf7;--ws-bg-surface: #ffffff;--ws-bg-hover: #f5f5f0;--ws-text-primary: #1a1a1a;--ws-text-muted: #6b7280;--ws-border: #ece9e1;--ws-accent-pink: #f4a8c0;--ws-accent-purple: #7b68ee;--ws-text: var(--ws-text-primary);--ws-bg: var(--ws-bg-page);--ws-surface: var(--ws-bg-surface);--ws-accent: var(--ws-accent-pink);--ws-text-faint: #a1a1aa;--ws-focus-ring: #1a1a1a;--ws-text-secondary: #4b5563;--ws-bg-elev: #f3f4f6;--ws-danger: #dc2626;--ws-danger-soft: rgba(239, 68, 68, .12);--ws-font-display: Georgia, "Times New Roman", serif;color-scheme:only light}[data-theme=light]{color-scheme:only light}[data-theme=dark]{--ws-text-secondary: #c4c4cc;--ws-bg-elev: #2a2a32;--ws-danger: #f87171;--ws-danger-soft: rgba(248, 113, 113, .16);--ws-bg-page: #131317;--ws-bg-surface: #1f1f25;--ws-bg-hover: #2a2a32;--ws-text-primary: #f2f2f0;--ws-text-muted: #a3a3ad;--ws-border: #33333c;--ws-accent-pink: #e889a8;--ws-accent-purple: #9d8fff;--ws-focus-ring: #f0f0ee;--ws-text-faint: #75757f;color-scheme:only dark}[data-theme=dark] select option,[data-theme=dark] select optgroup{background-color:var(--ws-bg-surface);color:var(--ws-text-primary)}[data-theme=dark] .loading{background:var(--ws-bg-page);color:var(--ws-text-primary)}[data-theme=dark] .spinner,[data-theme=dark] .spinner-lg,[data-theme=dark] .spinner-small{border-color:var(--ws-border);border-top-color:var(--ws-accent-pink)}.app-boot{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--ws-bg-page, #fafaf7);color:var(--ws-text-primary, #1a1a1a);z-index:9999}.app-boot-spinner{width:28px;height:28px;border-radius:50%;border:2.5px solid rgba(244,168,192,.25);border-top-color:#f4a8c0;animation:appBootSpin .75s linear infinite}@keyframes appBootSpin{to{transform:rotate(360deg)}}[data-theme=dark] .app-boot{background:var(--ws-bg-page);color:var(--ws-text-primary)}@media (prefers-reduced-motion: reduce){.app-boot-spinner{animation:none}}
