@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseGlow{0%,to{opacity:.8}50%{opacity:.4}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes flash{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes progressBarFill{0%{width:0%}to{width:100%}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes glow{0%,to{box-shadow:0 0 5px #3b82f680}50%{box-shadow:0 0 20px #3b82f6cc}}@keyframes rotateSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.05)}20%,40%{transform:scale(1)}}@keyframes flashPulse{0%,to{transform:translate(-50%,-50%) rotate(45deg) scale(1);box-shadow:0 0 8px #8b5cf699}50%{transform:translate(-50%,-50%) rotate(45deg) scale(1.6);box-shadow:0 0 20px #8b5cf6}}@keyframes updatePulse{0%,to{transform:translate(-50%,-50%) rotate(45deg) scale(1.4);box-shadow:0 0 12px #f59e0be6}50%{transform:translate(-50%,-50%) rotate(45deg) scale(1.8);box-shadow:0 0 24px #f59e0b}}@keyframes slideInFromTop{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}:root{--bg-primary: #1a1a1f;--bg-secondary: #2d2d35;--bg-tertiary: #3a3a42;--text-primary: #ffffff;--text-secondary: #b0b0b8;--accent-primary: #00d4ff;--accent-secondary: #8b5cf6;--border-color: rgba(255, 255, 255, .1);--shadow: 0 4px 20px rgba(0, 0, 0, .3);--radius: 8px;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:var(--transition)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius);padding:8px 12px;transition:var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.p-4{padding:1rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.floating-panel{position:absolute;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-height:80vh;overflow-y:auto;z-index:100}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:move;-webkit-user-select:none;user-select:none}.panel-title{font-size:14px;font-weight:600;color:var(--text-primary)}.panel-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:transparent;color:var(--text-secondary);transition:var(--transition)}.panel-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.panel-content{padding:16px}.toast{position:fixed;bottom:20px;right:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow);z-index:9999;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast.success{border-left:4px solid #10b981}.toast.error{border-left:4px solid #ef4444}.toast.info{border-left:4px solid var(--accent-primary)}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#1a1a1fcc;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translate(-50%) translateY(40px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%,-30px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px)}}@keyframes flashPulse{0%,to{box-shadow:0 0 8px #8b5cf699;transform:translate(-50%,-50%) rotate(45deg) scale(1)}50%{box-shadow:0 0 30px #10b981,0 0 50px #10b98199;transform:translate(-50%,-50%) rotate(45deg) scale(1.8)}}@keyframes updatePulse{0%,to{box-shadow:0 0 12px #f59e0be6;transform:translate(-50%,-50%) rotate(45deg) scale(1.4)}50%{box-shadow:0 0 25px #f59e0b,0 0 40px #f59e0bb3;transform:translate(-50%,-50%) rotate(45deg) scale(1.7)}}@keyframes deleteFadeOut{0%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(1.4)}50%{transform:translate(-50%,-50%) rotate(225deg) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) rotate(405deg) scale(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes blurFadeInOut{0%{opacity:0;filter:blur(10px)}50%{opacity:1;filter:blur(0px)}to{opacity:0;filter:blur(10px)}}@keyframes blurFadeIn{0%{opacity:0;filter:blur(8px);transform:translateY(10px)}to{opacity:1;filter:blur(0px);transform:translateY(0)}}*{-webkit-overflow-scrolling:touch}@media (max-width: 768px){button:not([style*="border-radius: 50%"]){min-height:40px;touch-action:manipulation}input[type=range]{height:36px;touch-action:manipulation}select{min-height:40px;font-size:14px;touch-action:manipulation}input[type=number],input[type=text]{min-height:36px;font-size:14px;touch-action:manipulation}input,select,textarea{font-size:16px!important}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}
