:root{--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:400ms cubic-bezier(0.4,0,0.2,1);--bounce:cubic-bezier(0.68,-0.55,0.265,1.55);}.section{animation:fadeIn var(--transition-slow) ease-out;}@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}.modal{animation:modalFadeIn var(--transition-normal) ease-out;}@keyframes modalFadeIn{from{opacity:0;}to{opacity:1;}}.modal__content{animation:modalSlideUp var(--transition-slow) var(--bounce);}@keyframes modalSlideUp{from{opacity:0;transform:translateY(50px) scale(0.95);}to{opacity:1;transform:translateY(0) scale(1);}}.modal__overlay{animation:overlayFadeIn var(--transition-normal) ease-out;}@keyframes overlayFadeIn{from{opacity:0;}to{opacity:1;}}.btn{position:relative;overflow:hidden;transition:all var(--transition-fast);}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.15);}.btn:active{transform:translateY(0);box-shadow:0 2px 4px rgba(0,0,0,0.1);}.btn::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.5);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s;}.btn:active::after{width:300px;height:300px;opacity:0;}.btn--primary:hover{box-shadow:0 4px 20px rgba(96,165,250,0.4);}.btn--secondary:hover{box-shadow:0 4px 16px rgba(124,58,237,0.3);}.btn--danger:hover{box-shadow:0 4px 16px rgba(239,68,68,0.3);}.history-card,.preset-card,.template-card,.stat-card{transition:all var(--transition-normal);}.history-card:hover,.preset-card:hover,.template-card:hover{transform:translateY(-4px) scale(1.02);}.stat-card:hover{transform:translateY(-2px);}@keyframes cardReveal{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}.history-card,.template-card,.stat-card{animation:cardReveal var(--transition-slow) ease-out backwards;}.history-card:nth-child(1){animation-delay:0ms;}.history-card:nth-child(2){animation-delay:50ms;}.history-card:nth-child(3){animation-delay:100ms;}.history-card:nth-child(4){animation-delay:150ms;}.history-card:nth-child(5){animation-delay:200ms;}.history-card:nth-child(6){animation-delay:250ms;}.stat-card:nth-child(1){animation-delay:0ms;}.stat-card:nth-child(2){animation-delay:100ms;}.stat-card:nth-child(3){animation-delay:200ms;}.stat-card:nth-child(4){animation-delay:300ms;}.form-select,.form-input,.history-search-input{transition:all var(--transition-fast);}.form-select:focus,.form-input:focus,.history-search-input:focus{transform:scale(1.01);box-shadow:0 0 0 3px rgba(96,165,250,0.1);}.form-group{position:relative;}.form-label{transition:all var(--transition-fast);}.form-select:focus + .form-label,.form-input:focus + .form-label{color:var(--primary-color);transform:scale(0.95);}.form-input:invalid:not(:placeholder-shown){border-color:var(--danger-color);animation:shake 0.4s ease-in-out;}@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}.form-input:valid:not(:placeholder-shown){border-color:var(--success-color);}.btn--loading{pointer-events:none;opacity:0.7;position:relative;}.btn--loading::before{content:'';position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,0.3);border-top-color:white;border-radius:50%;animation:spin 0.6s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-secondary) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md);}@keyframes skeleton-loading{0%{background-position:200% 0;}100%{background-position:-200% 0;}}.skeleton-text{height:1em;margin-bottom:0.5em;}.skeleton-title{height:1.5em;width:60%;margin-bottom:1em;}.skeleton-card{padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-md);}.skeleton-list-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);}.skeleton-table-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-xs);}.skeleton-form-field{margin-bottom:var(--space-md);}.inline-spinner{display:flex;align-items:center;justify-content:center;padding:var(--space-xl);}.spinner{animation:spin 1s linear infinite;color:var(--primary-color);}@keyframes spin{to{transform:rotate(360deg);}}.progress-bar{height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;position:relative;}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:2px;transition:width var(--transition-normal);position:relative;overflow:hidden;}.progress-bar__fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);animation:shimmer 2s infinite;}@keyframes shimmer{0%{transform:translateX(-100%);}100%{transform:translateX(100%);}}.progress-bar--indeterminate .progress-bar__fill{width:100% !important;background:var(--bg-tertiary);}.progress-bar--indeterminate .progress-bar__fill::before{content:'';position:absolute;top:0;left:0;height:100%;width:30%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));animation:indeterminate 1.5s ease-in-out infinite;}@keyframes indeterminate{0%{left:-30%;}100%{left:100%;}}.notification{animation:slideInRight var(--transition-normal) var(--bounce);}@keyframes slideInRight{from{opacity:0;transform:translateX(100%);}to{opacity:1;transform:translateX(0);}}.notification--hide{animation:slideOutRight var(--transition-fast) ease-in;}@keyframes slideOutRight{from{opacity:1;transform:translateX(0);}to{opacity:0;transform:translateX(100%);}}.icon-btn{transition:all var(--transition-fast);}.icon-btn:hover{transform:scale(1.2) rotate(5deg);}.icon-btn:active{transform:scale(0.95);}@keyframes pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.05);opacity:0.9;}}.pulse{animation:pulse 2s ease-in-out infinite;}.tag,.history-tag,.change-badge{transition:all var(--transition-fast);}.tag:hover,.history-tag:hover{transform:scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,0.1);}input[type="checkbox"]{transition:all var(--transition-fast);cursor:pointer;}input[type="checkbox"]:checked{transform:scale(1.1);}input[type="checkbox"]:hover{transform:scale(1.2);}.dropdown-menu{animation:dropdownSlide var(--transition-normal) ease-out;transform-origin:top;}@keyframes dropdownSlide{from{opacity:0;transform:scaleY(0.8) translateY(-10px);}to{opacity:1;transform:scaleY(1) translateY(0);}}html{scroll-behavior:smooth;}.fade-in-on-scroll{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease-out,transform 0.6s ease-out;}.fade-in-on-scroll.visible{opacity:1;transform:translateY(0);}[data-tooltip]{position:relative;}[data-tooltip]::after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-8px);padding:var(--space-xs) var(--space-sm);background:rgba(0,0,0,0.9);color:white;font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--transition-fast);}[data-tooltip]:hover::after{opacity:1;transform:translateX(-50%) translateY(-4px);}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:var(--radius-sm);}::selection{background:rgba(96,165,250,0.3);color:var(--text-primary);}.section--entering{animation:sectionEnter var(--transition-slow) ease-out;}.section--leaving{animation:sectionLeave var(--transition-fast) ease-in;}@keyframes sectionEnter{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}@keyframes sectionLeave{from{opacity:1;transform:translateX(0);}to{opacity:0;transform:translateX(-20px);}}.fab{transition:all var(--transition-normal);}.fab:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 8px 24px rgba(96,165,250,0.4);}.fab:active{transform:scale(0.95);}[data-theme="dark"] .btn--primary:hover{box-shadow:0 0 20px rgba(96,165,250,0.5);}[data-theme="dark"] .btn--secondary:hover{box-shadow:0 0 20px rgba(124,58,237,0.4);}[data-theme="dark"] .history-card:hover,[data-theme="dark"] .template-card:hover{box-shadow:0 8px 32px rgba(96,165,250,0.2);}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}.scroll-to-top{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:white;border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:9999;opacity:0;transform:scale(0.8);transition:all var(--transition-normal);}.scroll-to-top.visible{opacity:1;transform:scale(1);}.scroll-to-top:hover{background:var(--secondary-color);transform:scale(1.1) translateY(-4px);box-shadow:0 8px 24px rgba(96,165,250,0.4);}.scroll-to-top:active{transform:scale(0.95);}[data-theme="dark"] .scroll-to-top:hover{box-shadow:0 0 24px rgba(96,165,250,0.6);}@media (max-width:640px){.scroll-to-top{bottom:var(--space-lg);right:var(--space-lg);width:40px;height:40px;}}.btn,.history-card,.template-card,.modal__content{will-change:transform;}.btn:not(:hover),.history-card:not(:hover),.template-card:not(:hover){will-change:auto;}