:root{--color-black:#1a1a1a;--color-dark:#404040;--color-medium:#737373;--color-light:#a3a3a3;--color-lighter:#d4d4d4;--color-lightest:#e5e5e5;--color-white:#fff;--bg-page:#f7f7f7;--bg-card:#fff;--bg-hover:#fafafa;--bg-active:#f5f5f5;--border-default:#e1e1e1;--border-hover:#a3a3a3;--border-focus:#404040;--color-primary:#3b82f6;--color-primary-light:#60a5fa;--color-primary-dark:#2563eb;--color-success:#16a34a;--color-success-light:#22c55e;--color-success-dark:#15803d;--color-danger:#dc2626;--color-danger-light:#ef4444;--color-danger-dark:#b91c1c;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:0.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--font-xs:0.6875rem;--font-sm:0.8125rem;--font-base:0.9375rem;--font-lg:1.125rem;--font-xl:1.5rem;--font-2xl:2rem;--font-3xl:2.5rem;--transition-fast:0.15s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 2px 8px rgba(0,0,0,.08);--shadow-lg:0 4px 16px rgba(0,0,0,.12);--shadow-xl:0 8px 32px rgba(0,0,0,.16)}*{box-sizing:border-box;margin:0;padding:0}body,html{max-width:100vw;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-black);background:var(--bg-page);line-height:1.5}a{color:inherit;text-decoration:none}::selection{background:var(--color-primary);color:var(--color-white)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-page)}::-webkit-scrollbar-thumb{background:var(--color-lighter);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-light)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{animation:shimmer 1.2s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f0 0,#e5e5e5 20%,#f0f0f0 40%,#f0f0f0);background-size:800px 104px;border-radius:var(--radius-md)}.skeleton-text{height:1em;margin-bottom:.5rem}.skeleton-avatar{width:48px;height:48px;border-radius:var(--radius-lg)}.skeleton-card{height:200px;border-radius:var(--radius-lg)}.fade-in{animation:fadeIn var(--transition-base)}.slide-up{animation:slideUp var(--transition-base)}.slide-down{animation:slideDown var(--transition-base)}.scale-in{animation:scaleIn var(--transition-base)}.hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}@keyframes successPulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.7)}70%{box-shadow:0 0 0 20px rgba(22,163,74,0)}to{box-shadow:0 0 0 0 rgba(22,163,74,0)}}.success-pulse{animation:successPulse .6s ease-out}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti{position:fixed;width:10px;height:10px;background:var(--color-primary);animation:confetti-fall 3s linear;pointer-events:none;z-index:9999}@keyframes ripple{to{transform:scale(4);opacity:0}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:hsla(0,0%,100%,.5);border-radius:50%;transform:translate(-50%,-50%) scale(0)}.ripple:active:after{animation:ripple .6s ease-out}.smooth-transition{transition:all var(--transition-base)}@media print{body{background:#fff}.no-print{display:none!important}}