@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0e10;--surface:#17171a;--surface-2:#1e1e22;--surface-3:#27272c;--border:#2a2a30;--border-subtle:#222226;--text:#f0f0f2;--text-secondary:#8a8a96;--text-muted:#55555f;--purple:#9b6dff;--purple-dim:#7c52d6;--purple-subtle:rgba(155,109,255,.1);--purple-subtle-2:rgba(155,109,255,.06);--red:#ff4d4d;--red-subtle:rgba(255,77,77,.12);--red-border:rgba(255,77,77,.3);--green:#4dff91;--green-subtle:rgba(77,255,145,.08);--radius:10px;--radius-sm:6px;--radius-lg:14px;--font:"DM Sans",sans-serif;--font-mono:"DM Mono",monospace;--shadow:0 2px 16px rgba(0,0,0,.4);--shadow-sm:0 1px 6px rgba(0,0,0,.3)}body,html{background:var(--bg);color:var(--text);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}body,button,html{font-family:var(--font)}button{cursor:pointer;border:none;background:none}input,select,textarea{font-family:var(--font);background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:14px;outline:none;transition:border-color .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--purple)}input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background:var(--surface-2)}a{color:inherit;text-decoration:none}.progress-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:14px;background:none;border:none;padding:0;cursor:pointer;touch-action:none}.progress-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--purple) var(--pct,0),var(--surface-3) var(--pct,0))}.progress-slider::-moz-range-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--purple) var(--pct,0),var(--surface-3) var(--pct,0))}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-4px;border-radius:50%;background:var(--purple);border:2px solid var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.5);-webkit-transition:transform .12s;transition:transform .12s}.progress-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--purple);border:2px solid var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.5)}.progress-slider:active::-webkit-slider-thumb,.progress-slider:hover::-webkit-slider-thumb{transform:scale(1.15)}.progress-slider:focus-visible::-webkit-slider-thumb{outline:2px solid var(--purple);outline-offset:2px}.rank-badge{overflow:visible;transition:box-shadow .3s ease,transform .3s ease,border-color .3s ease}.rank-fill{position:relative;overflow:hidden;box-shadow:0 0 10px -2px var(--rank,var(--purple))}.rank-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,hsla(0,0%,100%,.55) 50%,transparent 80%);transform:translateX(-100%);animation:rank-sweep 2.6s ease-in-out infinite}.rank-badge-gain{animation:rank-pump 1s cubic-bezier(.22,1,.36,1);box-shadow:0 0 0 1px var(--rank,var(--purple)),0 0 26px -4px var(--rank,var(--purple))}.rank-badge-gain .rank-label{animation:rank-label-flare 1s ease-out}.xp-delta{position:absolute;right:8px;top:-6px;font-size:12px;font-weight:800;letter-spacing:.2px;pointer-events:none;white-space:nowrap;animation:xp-float 1.5s cubic-bezier(.16,1,.3,1) forwards}.xp-delta-up{color:#4dff91;text-shadow:0 0 12px rgba(77,255,145,.8)}.xp-delta-down{color:#ff4d4d;text-shadow:0 0 12px rgba(255,77,77,.7);animation:xp-sink 1.5s cubic-bezier(.16,1,.3,1) forwards}.rank-badge-levelup{animation:rank-levelup 2.4s cubic-bezier(.22,1,.36,1)}.rank-burst{position:absolute;inset:-4px;border-radius:12px;border:2px solid;pointer-events:none;animation:rank-ring 1.1s ease-out forwards}.rank-shout{top:-30px;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 10px;border-radius:20px;border:1px solid;background:var(--surface);box-shadow:0 6px 22px rgba(0,0,0,.55);animation:rank-shout-in 2.4s cubic-bezier(.22,1,.36,1) forwards}.confetti-layer,.rank-shout{position:absolute;left:50%;pointer-events:none}.confetti-layer{top:50%;width:0;height:0}.confetti-piece{position:absolute;width:7px;height:11px;border-radius:2px;opacity:0;animation:confetti-fly 1.5s cubic-bezier(.18,.8,.4,1) forwards}@keyframes rank-sweep{0%{transform:translateX(-100%)}60%{transform:translateX(100%)}to{transform:translateX(100%)}}@keyframes rank-pump{0%{transform:scale(1)}28%{transform:scale(1.14)}55%{transform:scale(.98)}to{transform:scale(1)}}@keyframes rank-label-flare{0%{filter:brightness(1)}30%{filter:brightness(2.1) saturate(1.6)}to{filter:brightness(1)}}@keyframes xp-float{0%{opacity:0;transform:translateY(4px) scale(.8)}18%{opacity:1;transform:translateY(-6px) scale(1.15)}45%{opacity:1;transform:translateY(-14px) scale(1)}to{opacity:0;transform:translateY(-30px) scale(.95)}}@keyframes xp-sink{0%{opacity:0;transform:translateY(-6px) scale(.9)}20%{opacity:1;transform:translateY(2px) scale(1.05)}to{opacity:0;transform:translateY(18px) scale(.95)}}@keyframes rank-levelup{0%{transform:scale(1) rotate(0deg)}12%{transform:scale(1.22) rotate(-2.5deg)}26%{transform:scale(1.08) rotate(2deg)}40%{transform:scale(1.16) rotate(-1deg)}60%{transform:scale(1) rotate(0deg)}to{transform:scale(1) rotate(0deg)}}@keyframes rank-ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes rank-shout-in{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.7)}14%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.12)}24%{transform:translateX(-50%) translateY(0) scale(1)}80%{opacity:1}to{opacity:0;transform:translateX(-50%) translateY(-8px) scale(.95)}}@keyframes confetti-fly{0%{opacity:1;transform:translate(0) rotate(0deg) scale(1)}to{opacity:0;transform:translate(var(--x,0),78px) rotate(var(--r,1turn)) scale(.6)}}@media (prefers-reduced-motion:reduce){.confetti-piece,.rank-badge-gain,.rank-badge-levelup,.rank-burst,.rank-fill:after{animation:none}.confetti-layer,.rank-fill:after{display:none}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.animate-in{animation:fadeIn .2s ease forwards}@media (max-width:600px){.btn-label{display:none}}@media (max-width:480px){.grid{grid-template-columns:1fr!important}}button:hover:not(:disabled){opacity:.85}button:disabled{opacity:.45;cursor:not-allowed}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.5);cursor:pointer}