 * {
     font-family: 'Inter', sans-serif;
 }

 .gradient-bg {
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
 }

 .qr-container {
     background: white;
     border-radius: 16px;
     padding: 20px;
     box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
     transition: all 0.3s ease;
 }

 .qr-container:hover {
     transform: translateY(-5px);
     box-shadow: 0 15px 50px rgba(102, 126, 234, 0.3);
 }

 #qrcode canvas {
     border-radius: 12px;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
     transition: all 0.3s ease;
     max-width: 100%;
     height: auto;
 }

 .tab-button {
     transition: all 0.3s ease;
     position: relative;
     overflow: hidden;
 }

 .tab-button::after {
     content: '';
     position: absolute;
     bottom: 0;
     left: 50%;
     width: 0;
     height: 2px;
     background: #4f46e5;
     transition: all 0.3s ease;
     transform: translateX(-50%);
 }

 .tab-button.active::after {
     width: 80%;
 }

 .input-field {
     transition: all 0.3s ease;
     border: 2px solid #e5e7eb;
 }

 .input-field:focus {
     border-color: #4f46e5;
     box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
     outline: none;
 }

 .btn-primary {
     background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
     transition: all 0.3s ease;
     position: relative;
     overflow: hidden;
 }

 .btn-primary:hover {
     transform: translateY(-2px);
     box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.5);
 }

 .btn-primary:active {
     transform: translateY(0);
 }

 .btn-primary:disabled {
     opacity: 0.5;
     cursor: not-allowed;
     transform: none;
 }

 .toast-message {
     animation: slideIn 0.3s ease, fadeOut 0.3s ease 2.7s;
 }

 @keyframes slideIn {
     from {
         transform: translateX(100%);
         opacity: 0;
     }

     to {
         transform: translateX(0);
         opacity: 1;
     }
 }

 @keyframes fadeOut {
     from {
         opacity: 1;
     }

     to {
         opacity: 0;
     }
 }

 input[type="range"] {
     -webkit-appearance: none;
     height: 8px;
     background: linear-gradient(90deg, #4f46e5, #7c3aed);
     border-radius: 4px;
 }

 input[type="range"]::-webkit-slider-thumb {
     -webkit-appearance: none;
     width: 20px;
     height: 20px;
     background: white;
     border: 2px solid #4f46e5;
     border-radius: 50%;
     cursor: pointer;
     box-shadow: 0 2px 10px rgba(79, 70, 229, 0.3);
     transition: all 0.2s ease;
 }

 input[type="range"]::-webkit-slider-thumb:hover {
     transform: scale(1.15);
     background: #4f46e5;
 }

 .color-picker {
     width: 40px;
     height: 40px;
     border-radius: 50%;
     border: 2px solid transparent;
     transition: all 0.2s ease;
 }

 .color-picker.active {
     border-color: #4f46e5;
     transform: scale(1.1);
 }

 .spinner {
     border: 3px solid #f3f3f3;
     border-top: 3px solid #4f46e5;
     border-radius: 50%;
     width: 24px;
     height: 24px;
     animation: spin 1s linear infinite;
 }

 @keyframes spin {
     0% {
         transform: rotate(0deg);
     }

     100% {
         transform: rotate(360deg);
     }
 }

 .history-item {
     transition: all 0.3s ease;
 }

 .history-item:hover {
     background: #f3f4f6;
     transform: translateX(5px);
 }