/* ========================================
QR Generator Professional Styles v2.0
Complete Production-Ready Stylesheet
Mobile-First • Dark Theme • Adaptive • Modern
======================================== */

/* ===== CSS RESET & BASE STYLES ===== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

/* ===== DESIGN TOKENS & CSS VARIABLES ===== */
:root {
/* Primary Color Palette */
--primary: #4361ee;
--primary-light: #4895ef;
--primary-dark: #3a56d4;
--secondary: #7209b7;
--secondary-light: #b5179e;

/* Functional Colors */
--success: #06d6a0;
--success-dark: #00b4d8;
--warning: #ffd166;
--warning-dark: #ffb703;
--danger: #ef476f;
--danger-dark: #e63946;
--info: #4cc9f0;

/* Neutral Colors - Light Theme */
--dark: #1a1a2e;
--light: #f8f9fa;
--gray-100: #f8f9fa;
--gray-200: #e9ecef;
--gray-300: #dee2e6;
--gray-400: #ced4da;
--gray-500: #adb5bd;
--gray-600: #6c757d;
--gray-700: #495057;
--gray-800: #343a40;
--gray-900: #212529;

/* Theme-specific (default light) */
--bg-primary: #ffffff;
--bg-secondary: #f8f9fa;
--bg-tertiary: #e9ecef;
--text-primary: #1a1a2e;
--text-secondary: #495057;
--text-muted: #6c757d;
--border-color: #dee2e6;
--border-light: #e9ecef;
--surface-1: rgba(255, 255, 255, 0.95);
--surface-2: rgba(255, 255, 255, 0.8);
--surface-3: rgba(255, 255, 255, 0.6);

/* Shadows */
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.08);
--shadow-md: 0 10px 40px rgba(0, 0, 0, 0.08);
--shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.12);
--shadow-xl: 0 30px 80px rgba(0, 0, 0, 0.16);
--shadow-hover: 0 15px 50px rgba(67, 97, 238, 0.15);
--shadow-focus: 0 0 0 4px rgba(67, 97, 238, 0.1);

/* Spacing Scale (8px base) */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-7: 28px;
--space-8: 32px;
--space-9: 36px;
--space-10: 40px;
--space-11: 48px;
--space-12: 56px;
--space-13: 64px;
--space-14: 72px;
--space-15: 80px;

/* Typography Scale */
--text-xs: 12px;
--text-sm: 14px;
--text-base: 16px;
--text-lg: 18px;
--text-xl: 20px;
--text-2xl: 24px;
--text-3xl: 28px;
--text-4xl: 32px;
--text-5xl: 36px;
--text-6xl: 42px;

/* Line Heights */
--leading-none: 1;
--leading-tight: 1.25;
--leading-snug: 1.375;
--leading-normal: 1.5;
--leading-relaxed: 1.625;
--leading-loose: 2;

/* Font Weights */
--font-thin: 100;
--font-extralight: 200;
--font-light: 300;
--font-normal: 400;
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
--font-extrabold: 800;
--font-black: 900;

/* Border Radius */
--radius-none: 0;
--radius-xs: 4px;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--radius-2xl: 24px;
--radius-3xl: 30px;
--radius-full: 9999px;

/* Transitions */
--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-bounce: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);

/* Z-Index Scale */
--z-dropdown: 1000;
--z-sticky: 1020;
--z-fixed: 1030;
--z-modal-backdrop: 1040;
--z-modal: 1050;
--z-popover: 1060;
--z-tooltip: 1070;
--z-toast: 1080;

/* Layout */
--container-max-width: 1400px;
--header-height: 80px;
--sidebar-width: 280px;
}

/* ===== DARK THEME OVERRIDES ===== */
body.qr-dark-theme {
/* Primary Color Palette - Dark Theme */
--primary: #4895ef;
--primary-light: #5fa3f0;
--primary-dark: #3f7ed6;
--secondary: #b5179e;
--secondary-light: #c73bb3;

/* Functional Colors - Dark Theme */
--success: #00b4d8;
--success-dark: #0096c7;
--warning: #ffb703;
--warning-dark: #fb8500;
--danger: #e63946;
--danger-dark: #d90429;
--info: #48cae4;

/* Neutral Colors - Dark Theme */
--dark: #0b090a;
--light: #161a1d;
--gray-100: #212529;
--gray-200: #343a40;
--gray-300: #495057;
--gray-400: #6c757d;
--gray-500: #adb5bd;
--gray-600: #ced4da;
--gray-700: #dee2e6;
--gray-800: #e9ecef;
--gray-900: #f8f9fa;

/* Theme-specific (dark) */
--bg-primary: #0b090a;
--bg-secondary: #161a1d;
--bg-tertiary: #1e2327;
--text-primary: #f8f9fa;
--text-secondary: #e9ecef;
--text-muted: #adb5bd;
--border-color: #343a40;
--border-light: #2c3035;
--surface-1: rgba(22, 26, 29, 0.95);
--surface-2: rgba(22, 26, 29, 0.8);
--surface-3: rgba(22, 26, 29, 0.6);

/* Shadows - Dark Theme */
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.4);
--shadow-md: 0 10px 40px rgba(0, 0, 0, 0.3);
--shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.4);
--shadow-xl: 0 30px 80px rgba(0, 0, 0, 0.5);
--shadow-hover: 0 15px 50px rgba(72, 149, 239, 0.2);
--shadow-focus: 0 0 0 4px rgba(72, 149, 239, 0.15);

/* Apply dark theme to body */
background-color: var(--bg-primary);
color: var(--text-primary);
}

/* ===== GLOBAL STYLES ===== */
html {
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent;
}

body {
background: linear-gradient(135deg, #667eea0d 0%, #764ba20d 100%);
min-height: 100vh;
color: var(--text-primary);
line-height: var(--leading-normal);
font-size: var(--text-base);
font-weight: var(--font-normal);
overflow-x: hidden;
position: relative;
}

body.qr-dark-theme {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

/* ===== SCROLLBAR STYLING ===== */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}

::-webkit-scrollbar-track {
background: var(--bg-tertiary);
border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb {
background: linear-gradient(135deg, var(--primary), var(--secondary));
border-radius: var(--radius-full);
transition: var(--transition-base);
}

::-webkit-scrollbar-thumb:hover {
background: linear-gradient(135deg, var(--primary-dark), var(--secondary-light));
}

/* Firefox scrollbar */
* {
scrollbar-width: thin;
scrollbar-color: var(--primary) var(--bg-tertiary);
}

/* ===== SELECTION STYLING ===== */
::selection {
background: var(--primary);
color: white;
text-shadow: none;
}

::-moz-selection {
background: var(--primary);
color: white;
text-shadow: none;
}

/* ===== FOCUS VISIBLE (ACCESSIBILITY) ===== */
:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 2px;
border-radius: var(--radius-md);
}

/* ===== CONTAINER LAYOUT ===== */
.qr-container {
max-width: var(--container-max-width);
margin: 0 auto;
padding: var(--space-3) var(--space-4);
width: 100%;
}

/* ===== HEADER STYLES ===== */
.qr-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: var(--space-5) var(--space-6);
background: linear-gradient(145deg,
rgba(255, 255, 255, 0.1) 0%,
rgba(255, 255, 255, 0.05) 100%);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-radius: var(--radius-3xl);
margin-bottom: var(--space-8);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: var(--shadow-md);
flex-wrap: wrap;
gap: var(--space-5);
transition: var(--transition-base);
}

body.qr-dark-theme .qr-header {
background: linear-gradient(145deg,
rgba(255, 255, 255, 0.05) 0%,
rgba(255, 255, 255, 0.02) 100%);
border-color: rgba(255, 255, 255, 0.05);
}

.qr-header:hover {
box-shadow: var(--shadow-lg);
}

.qr-logo {
display: flex;
align-items: center;
gap: var(--space-4);
position: relative;
}

.qr-logo i {
font-size: var(--text-4xl);
color: var(--primary);
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
filter: drop-shadow(0 2px 4px rgba(67, 97, 238, 0.3));
transition: var(--transition-bounce);
}

.qr-logo:hover i {
transform: scale(1.1) rotate(-5deg);
}

.qr-logo h1 {
font-size: var(--text-3xl);
font-weight: var(--font-bold);
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing: -0.5px;
}

.qr-stats-badge {
display: flex;
align-items: center;
gap: var(--space-4);
margin-left: var(--space-5);
}

.qr-counter {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
padding: var(--space-2) var(--space-5);
border-radius: var(--radius-full);
font-size: var(--text-sm);
font-weight: var(--font-semibold);
display: flex;
align-items: center;
gap: var(--space-2);
box-shadow: var(--shadow-md);
transition: var(--transition-base);
border: 1px solid rgba(255, 255, 255, 0.2);
}

.qr-counter:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}

.qr-counter i {
font-size: var(--text-base);
-webkit-text-fill-color: white;
background: none;
}

.qr-nav {
display: flex;
align-items: center;
gap: var(--space-4);
}

.qr-nav-links {
display: flex;
gap: var(--space-3);
flex-wrap: wrap;
}

.qr-nav-link {
padding: var(--space-3) var(--space-5);
border-radius: var(--radius-full);
text-decoration: none;
color: var(--text-secondary);
font-weight: var(--font-medium);
font-size: var(--text-sm);
transition: var(--transition-base);
background: transparent;
border: 1px solid var(--border-color);
position: relative;
overflow: hidden;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

.qr-nav-link::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, var(--primary), var(--secondary));
opacity: 0;
transition: var(--transition-base);
z-index: -1;
}

.qr-nav-link:hover::before,
.qr-nav-link.qr-active::before {
opacity: 1;
}

.qr-nav-link:hover,
.qr-nav-link.qr-active {
color: white;
border-color: transparent;
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}

.qr-theme-toggle {
width: 48px;
height: 48px;
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
background: var(--surface-1);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
transition: var(--transition-bounce);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
position: relative;
overflow: hidden;
}

.qr-theme-toggle::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at center, var(--primary) 0%, transparent 70%);
opacity: 0;
transition: var(--transition-base);
}

.qr-theme-toggle:hover::before {
opacity: 0.1;
}

.qr-theme-toggle:hover {
transform: rotate(15deg) scale(1.05);
box-shadow: var(--shadow-md);
border-color: var(--primary);
}

body.qr-dark-theme .qr-theme-toggle {
background: var(--bg-tertiary);
color: var(--text-primary);
}

.qr-mobile-menu-btn {
display: none;
width: 48px;
height: 48px;
border-radius: var(--radius-lg);
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border: none;
cursor: pointer;
font-size: var(--text-xl);
transition: var(--transition-base);
align-items: center;
justify-content: center;
box-shadow: var(--shadow-md);
position: relative;
overflow: hidden;
}

.qr-mobile-menu-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;
}

.qr-mobile-menu-btn:active::after {
width: 300px;
height: 300px;
}

.qr-mobile-menu-btn:hover {
transform: scale(1.05);
box-shadow: var(--shadow-lg);
}

/* ===== TABS NAVIGATION ===== */
.qr-tabs {
display: flex;
gap: var(--space-2);
margin-bottom: var(--space-8);
border-bottom: 2px solid var(--border-color);
padding-bottom: 0;
flex-wrap: wrap;
position: relative;
}

.qr-tab-btn {
padding: var(--space-4) var(--space-7);
background: transparent;
border: none;
color: var(--text-muted);
font-weight: var(--font-semibold);
font-size: var(--text-base);
cursor: pointer;
transition: var(--transition-base);
position: relative;
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
min-height: 48px;
}

.qr-tab-btn:hover {
color: var(--primary);
background: rgba(67, 97, 238, 0.05);
}

.qr-tab-btn.qr-active {
color: var(--primary);
}

.qr-tab-btn.qr-active::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
border-radius: var(--radius-full) var(--radius-full) 0 0;
animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}

/* ===== MAIN CONTENT GRID ===== */
.qr-main-content {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-6);
margin-bottom: var(--space-10);
}

/* ===== PANELS STYLING ===== */
.qr-left-panel,
.qr-right-panel {
background: var(--surface-1);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: var(--radius-2xl);
padding: var(--space-8);
box-shadow: var(--shadow-lg);
border: 1px solid rgba(255, 255, 255, 0.2);
transition: var(--transition-base);
position: relative;
overflow: hidden;
}

body.qr-dark-theme .qr-left-panel,
body.qr-dark-theme .qr-right-panel {
background: var(--surface-1);
border-color: rgba(255, 255, 255, 0.05);
}

.qr-left-panel::before,
.qr-right-panel::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, var(--primary), var(--secondary), var(--success));
opacity: 0;
transition: var(--transition-base);
}

.qr-left-panel:hover::before,
.qr-right-panel:hover::before {
opacity: 1;
}

.qr-left-panel:hover,
.qr-right-panel:hover {
box-shadow: var(--shadow-xl);
transform: translateY(-2px);
}

/* ===== QR TYPE BUTTONS ===== */
.qr-types-section {
display: flex;
flex-wrap: wrap;
gap: var(--space-3);
margin-bottom: var(--space-6);
}

.qr-type-btn {
padding: var(--space-3) var(--space-5);
border-radius: var(--radius-full);
background: transparent;
border: 1.5px solid var(--border-color);
color: var(--text-secondary);
font-weight: var(--font-medium);
font-size: var(--text-sm);
cursor: pointer;
transition: var(--transition-bounce);
display: flex;
align-items: center;
gap: var(--space-2);
min-height: 48px;
position: relative;
overflow: hidden;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

.qr-type-btn i {
font-size: var(--text-lg);
transition: var(--transition-base);
}

.qr-type-btn::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, var(--primary), var(--secondary));
opacity: 0;
transition: var(--transition-base);
z-index: -1;
}

.qr-type-btn:hover {
border-color: var(--primary);
color: var(--primary);
transform: translateY(-2px);
box-shadow: var(--shadow-sm);
}

.qr-type-btn:hover i {
transform: scale(1.1);
}

.qr-type-btn.qr-active {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border-color: transparent;
box-shadow: var(--shadow-md);
}

.qr-type-btn.qr-active::before {
opacity: 1;
}

.qr-type-btn.qr-active i {
color: white;
}

/* ===== INPUT SECTIONS ===== */
.qr-input-section {
margin-bottom: var(--space-6);
}

.qr-input-section label {
display: block;
margin-bottom: var(--space-3);
font-weight: var(--font-semibold);
color: var(--text-primary);
font-size: var(--text-sm);
text-transform: uppercase;
letter-spacing: 0.5px;
}

.qr-textarea {
width: 100%;
min-height: 150px;
padding: var(--space-4);
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
font-size: var(--text-sm);
line-height: var(--leading-normal);
resize: vertical;
transition: var(--transition-base);
background: var(--bg-primary);
color: var(--text-primary);
font-family: inherit;
scrollbar-width: thin;
}

body.qr-dark-theme .qr-textarea {
background: var(--bg-tertiary);
color: var(--text-primary);
border-color: var(--border-color);
}

.qr-textarea:focus {
outline: none;
border-color: var(--primary);
box-shadow: var(--shadow-focus);
transform: translateY(-1px);
}

.qr-textarea:hover {
border-color: var(--primary-light);
}

/* Placeholder styling */
.qr-textarea::placeholder {
color: var(--text-muted);
opacity: 0.7;
font-style: italic;
}

body.qr-dark-theme .qr-textarea::placeholder {
color: var(--gray-500);
}

/* ===== AI HINT ===== */
.qr-ai-hint {
margin-top: var(--space-3);
padding: var(--space-3) var(--space-4);
background: rgba(67, 97, 238, 0.08);
border-radius: var(--radius-md);
font-size: var(--text-xs);
border-left: 3px solid var(--primary);
display: none;
color: var(--text-secondary);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

body.qr-dark-theme .qr-ai-hint {
background: rgba(72, 149, 239, 0.15);
color: var(--text-primary);
}

.qr-ai-hint a {
color: var(--primary);
text-decoration: none;
font-weight: var(--font-semibold);
transition: var(--transition-fast);
position: relative;
}

.qr-ai-hint a::after {
content: '';
position: absolute;
bottom: -1px;
left: 0;
right: 0;
height: 1px;
background: var(--primary);
transform: scaleX(0);
transition: var(--transition-base);
}

.qr-ai-hint a:hover::after {
transform: scaleX(1);
}

/* ===== DATA WARNING ===== */
.qr-data-warning {
display: none;
align-items: center;
gap: var(--space-3);
padding: var(--space-3) var(--space-4);
background: rgba(239, 71, 111, 0.1);
border-radius: var(--radius-md);
margin-top: var(--space-4);
color: var(--danger);
border-left: 4px solid var(--danger);
font-size: var(--text-sm);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

.qr-data-warning i {
font-size: var(--text-lg);
animation: pulse 2s infinite;
}

@keyframes pulse {
0% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.7;
transform: scale(1.1);
}
100% {
opacity: 1;
transform: scale(1);
}
}

/* ===== CUSTOMIZATION SECTION ===== */
.qr-customization {
margin-bottom: var(--space-6);
}

.qr-colors {
display: flex;
gap: var(--space-5);
margin-bottom: var(--space-5);
flex-wrap: wrap;
}

.qr-color-group {
flex: 1;
min-width: 150px;
}

.qr-color-group label {
display: block;
margin-bottom: var(--space-2);
font-weight: var(--font-medium);
font-size: var(--text-sm);
color: var(--text-secondary);
}

.qr-color-inputs {
display: flex;
gap: var(--space-3);
align-items: center;
}

.qr-color-inputs input[type="color"] {
width: 56px;
height: 56px;
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
cursor: pointer;
padding: var(--space-1);
transition: var(--transition-base);
background: transparent;
}

.qr-color-inputs input[type="color"]:hover {
transform: scale(1.05);
border-color: var(--primary);
box-shadow: var(--shadow-sm);
}

.qr-color-inputs input[type="color"]::-webkit-color-swatch-wrapper {
padding: 0;
}

.qr-color-inputs input[type="color"]::-webkit-color-swatch {
border: none;
border-radius: var(--radius-md);
}

.qr-color-inputs input[type="text"] {
flex: 1;
padding: var(--space-3) var(--space-4);
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
font-family: 'Courier New', monospace;
font-size: var(--text-sm);
text-transform: uppercase;
background: var(--bg-primary);
color: var(--text-primary);
transition: var(--transition-base);
min-height: 48px;
}

body.qr-dark-theme .qr-color-inputs input[type="text"] {
background: var(--bg-tertiary);
color: var(--text-primary);
}

.qr-color-inputs input[type="text"]:focus {
outline: none;
border-color: var(--primary);
box-shadow: var(--shadow-focus);
}

/* ===== LOGO UPLOAD ===== */
.qr-logo-upload {
margin-bottom: var(--space-6);
}

.qr-logo-label {
display: flex;
align-items: center;
gap: var(--space-3);
padding: var(--space-4) var(--space-5);
border: 2px dashed var(--border-color);
border-radius: var(--radius-lg);
cursor: pointer;
transition: var(--transition-base);
color: var(--text-secondary);
font-weight: var(--font-medium);
min-height: 64px;
background: var(--bg-secondary);
}

.qr-logo-label:hover {
border-color: var(--primary);
background: rgba(67, 97, 238, 0.05);
transform: translateY(-2px);
box-shadow: var(--shadow-sm);
}

.qr-logo-label i {
font-size: var(--text-xl);
color: var(--primary);
}

.qr-logo-preview {
margin-top: var(--space-4);
display: none;
animation: fadeInScale 0.3s ease-out;
}

@keyframes fadeInScale {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}

.qr-logo-preview img {
max-width: 120px;
max-height: 120px;
border-radius: var(--radius-lg);
border: 2px solid var(--border-color);
box-shadow: var(--shadow-md);
transition: var(--transition-base);
}

.qr-logo-preview img:hover {
transform: scale(1.05);
box-shadow: var(--shadow-lg);
}

/* ===== AI STYLES ===== */
.qr-ai-styles {
margin-bottom: var(--space-6);
}

.qr-ai-styles h3 {
margin-bottom: var(--space-4);
font-size: var(--text-base);
font-weight: var(--font-semibold);
color: var(--text-primary);
}

.qr-ai-buttons {
display: flex;
gap: var(--space-3);
flex-wrap: wrap;
}

.qr-ai-style {
padding: var(--space-2) var(--space-4);
border-radius: var(--radius-full);
background: transparent;
border: 1.5px solid var(--border-color);
color: var(--text-secondary);
font-weight: var(--font-medium);
font-size: var(--text-xs);
cursor: pointer;
transition: var(--transition-base);
min-height: 40px;
position: relative;
overflow: hidden;
}

.qr-ai-style::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, var(--primary), var(--secondary));
opacity: 0;
transition: var(--transition-base);
z-index: -1;
}

.qr-ai-style:hover {
border-color: var(--primary);
color: var(--primary);
transform: translateY(-1px);
box-shadow: var(--shadow-sm);
}

.qr-ai-style.qr-active {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border-color: transparent;
box-shadow: var(--shadow-md);
}

.qr-ai-style.qr-active::before {
opacity: 1;
}

/* ===== ACTION BUTTONS ===== */
.qr-actions {
display: flex;
gap: var(--space-3);
flex-wrap: wrap;
margin-top: var(--space-6);
}

.qr-btn {
padding: var(--space-4) var(--space-7);
border-radius: var(--radius-lg);
border: none;
font-weight: var(--font-semibold);
font-size: var(--text-base);
cursor: pointer;
transition: var(--transition-bounce);
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
background: var(--surface-1);
color: var(--text-primary);
border: 1.5px solid var(--border-color);
min-height: 52px;
position: relative;
overflow: hidden;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
flex: 0 1 auto;
}

body.qr-dark-theme .qr-btn {
background: var(--bg-tertiary);
color: var(--text-primary);
border-color: var(--border-color);
}

.qr-btn::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.3);
transform: translate(-50%, -50%);
transition: width 0.6s, height 0.6s;
}

.qr-btn:active::after {
width: 300px;
height: 300px;
}

.qr-btn:hover {
transform: translateY(-3px);
box-shadow: var(--shadow-md);
border-color: var(--primary);
}

.qr-btn i {
font-size: var(--text-lg);
transition: var(--transition-base);
}

.qr-btn:hover i {
transform: scale(1.1);
}

.qr-btn-primary {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border: none;
background-size: 200% 200%;
animation: gradientShift 3s ease infinite;
box-shadow: var(--shadow-md);
}

@keyframes gradientShift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}

.qr-btn-primary:hover {
transform: translateY(-3px);
box-shadow: 0 15px 30px rgba(67, 97, 238, 0.4);
}

.qr-btn-success {
background: var(--success);
color: white;
border: none;
box-shadow: var(--shadow-sm);
}

.qr-btn-success:hover {
background: var(--success-dark);
box-shadow: 0 10px 25px rgba(6, 214, 160, 0.3);
}

.qr-btn-danger {
background: var(--danger);
color: white;
border: none;
box-shadow: var(--shadow-sm);
}

.qr-btn-danger:hover {
background: var(--danger-dark);
box-shadow: 0 10px 25px rgba(239, 71, 111, 0.3);
}

.qr-btn-outline {
background: transparent;
border: 2px solid var(--border-color);
}

.qr-btn-outline:hover {
background: var(--primary);
color: white;
border-color: var(--primary);
}

/* ===== QR CODE DISPLAY ===== */
.qr-qrcode-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 300px;
}

.qr-qrcode {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: var(--space-6);
min-height: 250px;
padding: var(--space-4);
}

.qr-qrcode canvas {
max-width: 100%;
height: auto;
border-radius: var(--radius-xl);
box-shadow: var(--shadow-lg);
transition: var(--transition-base);
animation: fadeInScale 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qr-qrcode canvas:hover {
transform: scale(1.02);
box-shadow: var(--shadow-xl);
}

.qr-placeholder {
text-align: center;
color: var(--text-muted);
padding: var(--space-10);
font-size: var(--text-lg);
}

body.qr-dark-theme .qr-placeholder {
color: var(--gray-500);
}

.qr-placeholder i {
font-size: 48px;
margin-bottom: var(--space-4);
opacity: 0.5;
animation: float 3s ease-in-out infinite;
}

@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}

/* ===== LINK SHARING ===== */
.qr-links {
width: 100%;
margin-top: var(--space-5);
}

.qr-link-group {
margin-bottom: var(--space-5);
}

.qr-link-group label {
display: block;
margin-bottom: var(--space-2);
font-weight: var(--font-semibold);
font-size: var(--text-sm);
color: var(--text-secondary);
}

.qr-link-input {
display: flex;
gap: var(--space-3);
}

.qr-link-input input {
flex: 1;
padding: var(--space-4) var(--space-5);
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
font-size: var(--text-sm);
background: var(--bg-primary);
color: var(--text-primary);
transition: var(--transition-base);
min-height: 52px;
font-family: 'Courier New', monospace;
}

body.qr-dark-theme .qr-link-input input {
background: var(--bg-tertiary);
color: var(--text-primary);
}

.qr-link-input input:focus {
outline: none;
border-color: var(--primary);
box-shadow: var(--shadow-focus);
}

.qr-link-input input[readonly] {
background: var(--bg-secondary);
cursor: default;
user-select: all;
}

.qr-copy-btn {
padding: var(--space-4) var(--space-5);
border-radius: var(--radius-lg);
background: var(--surface-1);
border: 1.5px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
transition: var(--transition-base);
white-space: nowrap;
min-height: 52px;
display: flex;
align-items: center;
gap: var(--space-2);
font-weight: var(--font-medium);
position: relative;
overflow: hidden;
}

body.qr-dark-theme .qr-copy-btn {
background: var(--bg-tertiary);
color: var(--text-primary);
border-color: var(--border-color);
}

.qr-copy-btn:hover {
background: var(--primary);
color: white;
border-color: var(--primary);
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}

.qr-copy-btn.copied {
background: var(--success);
color: white;
border-color: var(--success);
}

/* ===== SCANNER TAB ===== */
.qr-scanner-tab,
.qr-history-tab,
.qr-payment-tab {
display: none;
background: var(--surface-1);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: var(--radius-2xl);
padding: var(--space-8);
box-shadow: var(--shadow-lg);
border: 1px solid rgba(255, 255, 255, 0.2);
animation: fadeInScale 0.4s ease-out;
}

body.qr-dark-theme .qr-scanner-tab,
body.qr-dark-theme .qr-history-tab,
body.qr-dark-theme .qr-payment-tab {
background: var(--surface-1);
border-color: rgba(255, 255, 255, 0.05);
}

.qr-scanner-container {
position: relative;
width: 100%;
max-width: 640px;
margin: 0 auto;
border-radius: var(--radius-xl);
overflow: hidden;
box-shadow: var(--shadow-xl);
}

#scanner-video {
width: 100%;
height: auto;
display: block;
transform: rotate(0deg);
transition: transform 0.3s ease;
background: var(--dark);
}

.qr-scanner-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 3px solid var(--primary);
border-radius: var(--radius-xl);
pointer-events: none;
animation: pulseBorder 2s infinite;
}

@keyframes pulseBorder {
0%, 100% { border-color: var(--primary); }
50% { border-color: var(--secondary); }
}

.qr-scanner-overlay::before,
.qr-scanner-overlay::after {
content: '';
position: absolute;
width: 60px;
height: 60px;
border-color: var(--primary);
border-style: solid;
filter: drop-shadow(0 0 10px var(--primary));
}

.qr-scanner-overlay::before {
top: var(--space-5);
left: var(--space-5);
border-width: 5px 0 0 5px;
}

.qr-scanner-overlay::after {
bottom: var(--space-5);
right: var(--space-5);
border-width: 0 5px 5px 0;
}

.qr-scanner-controls {
margin-top: var(--space-6);
display: flex;
flex-wrap: wrap;
gap: var(--space-4);
justify-content: center;
}

.qr-scanner-nav {
display: flex;
gap: var(--space-3);
align-items: center;
margin-top: var(--space-4);
flex-wrap: wrap;
justify-content: center;
}

.qr-scanner-status {
padding: var(--space-3) var(--space-5);
border-radius: var(--radius-full);
font-weight: var(--font-medium);
font-size: var(--text-sm);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}

.qr-status-searching {
background: rgba(255, 209, 102, 0.2);
color: var(--warning);
border: 1px solid var(--warning);
}

.qr-status-success {
background: rgba(6, 214, 160, 0.2);
color: var(--success);
border: 1px solid var(--success);
}

.qr-status-error {
background: rgba(239, 71, 111, 0.2);
color: var(--danger);
border: 1px solid var(--danger);
}

.qr-scanner-result {
margin-top: var(--space-6);
padding: var(--space-5);
background: rgba(67, 97, 238, 0.08);
border-radius: var(--radius-lg);
border-left: 4px solid var(--primary);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

body.qr-dark-theme .qr-scanner-result {
background: rgba(72, 149, 239, 0.1);
}

.qr-scanner-content {
padding: var(--space-4);
background: var(--bg-primary);
border-radius: var(--radius-md);
margin: var(--space-4) 0;
word-break: break-all;
max-height: 150px;
overflow-y: auto;
font-family: 'Courier New', monospace;
font-size: var(--text-sm);
border: 1px solid var(--border-color);
scrollbar-width: thin;
}

body.qr-dark-theme .qr-scanner-content {
background: var(--bg-tertiary);
}

.qr-scanner-actions {
display: flex;
gap: var(--space-3);
flex-wrap: wrap;
margin-top: var(--space-4);
}

.qr-camera-selector {
padding: var(--space-3) var(--space-5);
border-radius: var(--radius-lg);
border: 1.5px solid var(--border-color);
background: var(--bg-primary);
color: var(--text-primary);
font-size: var(--text-sm);
min-width: 200px;
min-height: 48px;
cursor: pointer;
transition: var(--transition-base);
}

body.qr-dark-theme .qr-camera-selector {
background: var(--bg-tertiary);
color: var(--text-primary);
}

.qr-camera-selector:focus {
outline: none;
border-color: var(--primary);
box-shadow: var(--shadow-focus);
}

.qr-zoom-controls {
display: flex;
align-items: center;
gap: var(--space-2);
padding: var(--space-2) var(--space-4);
background: var(--surface-1);
border-radius: var(--radius-full);
border: 1.5px solid var(--border-color);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}

body.qr-dark-theme .qr-zoom-controls {
background: var(--bg-tertiary);
}

.qr-zoom-controls button {
width: 40px;
height: 40px;
border-radius: var(--radius-full);
border: none;
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: var(--text-xl);
font-weight: var(--font-bold);
transition: var(--transition-bounce);
box-shadow: var(--shadow-sm);
}

.qr-zoom-controls button:hover {
transform: scale(1.1);
box-shadow: var(--shadow-md);
}

.qr-zoom-controls button:active {
transform: scale(0.95);
}

.qr-zoom-controls span {
min-width: 60px;
text-align: center;
font-weight: var(--font-semibold);
color: var(--text-primary);
}

.qr-rotate-icon {
cursor: pointer;
padding: var(--space-3) var(--space-4);
background: var(--surface-1);
border-radius: var(--radius-full);
border: 1.5px solid var(--border-color);
transition: var(--transition-base);
display: flex;
align-items: center;
gap: var(--space-2);
color: var(--text-primary);
font-weight: var(--font-medium);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}

body.qr-dark-theme .qr-rotate-icon {
background: var(--bg-tertiary);
}

.qr-rotate-icon:hover {
background: var(--primary);
color: white;
border-color: var(--primary);
transform: rotate(180deg);
}

.qr-debug-panel {
display: none;
margin-top: var(--space-5);
padding: var(--space-4);
background: rgba(0, 0, 0, 0.05);
border-radius: var(--radius-md);
font-family: 'Courier New', monospace;
font-size: var(--text-xs);
max-height: 200px;
overflow-y: auto;
white-space: pre-wrap;
word-break: break-all;
border: 1px solid var(--border-color);
scrollbar-width: thin;
}

body.qr-dark-theme .qr-debug-panel {
background: rgba(255, 255, 255, 0.05);
}

/* ===== HISTORY TAB ===== */
.qr-history-actions {
display: flex;
gap: var(--space-3);
margin-bottom: var(--space-5);
flex-wrap: wrap;
}

.qr-history-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: var(--space-5);
margin-top: var(--space-6);
}

.qr-history-item {
padding: var(--space-4);
border: 1.5px solid var(--border-color);
border-radius: var(--radius-lg);
cursor: pointer;
transition: var(--transition-bounce);
text-align: center;
background: var(--bg-primary);
position: relative;
overflow: hidden;
}

body.qr-dark-theme .qr-history-item {
background: var(--bg-tertiary);
}

.qr-history-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, var(--primary), var(--secondary));
transform: scaleX(0);
transition: var(--transition-base);
}

.qr-history-item:hover::before {
transform: scaleX(1);
}

.qr-history-item:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-lg);
border-color: var(--primary);
}

.qr-history-item img {
width: 100%;
height: auto;
border-radius: var(--radius-md);
margin-bottom: var(--space-3);
box-shadow: var(--shadow-sm);
transition: var(--transition-base);
}

.qr-history-item:hover img {
transform: scale(1.05);
}

.qr-history-item p {
font-size: var(--text-xs);
color: var(--text-muted);
word-break: break-all;
margin-top: var(--space-2);
}

body.qr-dark-theme .qr-history-item p {
color: var(--gray-400);
}

.qr-history-delete {
position: absolute;
top: var(--space-2);
right: var(--space-2);
width: 28px;
height: 28px;
border-radius: var(--radius-full);
background: var(--danger);
color: white;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: var(--text-sm);
opacity: 0;
transition: var(--transition-base);
box-shadow: var(--shadow-md);
}

.qr-history-item:hover .qr-history-delete {
opacity: 1;
}

.qr-history-delete:hover {
transform: scale(1.1);
background: var(--danger-dark);
}

.qr-empty-history {
text-align: center;
padding: var(--space-15) var(--space-5);
color: var(--text-muted);
}

.qr-empty-history i {
font-size: 64px;
margin-bottom: var(--space-5);
opacity: 0.3;
animation: float 3s ease-in-out infinite;
}

/* ===== PAYMENT TAB ===== */
.qr-payment-types {
display: flex;
gap: var(--space-4);
margin-bottom: var(--space-8);
flex-wrap: wrap;
}

.qr-payment-type {
padding: var(--space-4) var(--space-6);
border-radius: var(--radius-full);
background: transparent;
border: 1.5px solid var(--border-color);
color: var(--text-secondary);
font-weight: var(--font-semibold);
cursor: pointer;
transition: var(--transition-bounce);
display: flex;
align-items: center;
gap: var(--space-3);
min-height: 52px;
position: relative;
overflow: hidden;
}

.qr-payment-type i {
font-size: var(--text-xl);
transition: var(--transition-base);
}

.qr-payment-type::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, var(--primary), var(--secondary));
opacity: 0;
transition: var(--transition-base);
z-index: -1;
}

.qr-payment-type:hover {
border-color: var(--primary);
transform: translateY(-2px);
box-shadow: var(--shadow-sm);
}

.qr-payment-type:hover i {
transform: scale(1.1);
}

.qr-payment-type.qr-active {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
border-color: transparent;
box-shadow: var(--shadow-md);
}

.qr-payment-type.qr-active::before {
opacity: 1;
}

.qr-payment-form {
display: grid;
gap: var(--space-5);
}

.qr-form-row {
display: grid;
grid-template-columns: 180px 1fr;
gap: var(--space-5);
align-items: start;
}

.qr-form-row label {
padding-top: var(--space-4);
font-weight: var(--font-semibold);
color: var(--text-primary);
font-size: var(--text-sm);
}

body.qr-dark-theme .qr-form-row label {
color: var(--text-primary);
}

.qr-form-row input,
.qr-form-row select,
.qr-form-row textarea {
padding: var(--space-4) var(--space-5);
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
font-size: var(--text-base);
transition: var(--transition-base);
background: var(--bg-primary);
color: var(--text-primary);
min-height: 52px;
}

body.qr-dark-theme .qr-form-row input,
body.qr-dark-theme .qr-form-row select,
body.qr-dark-theme .qr-form-row textarea {
background: var(--bg-tertiary);
color: var(--text-primary);
border-color: var(--border-color);
}

.qr-form-row input:focus,
.qr-form-row select:focus,
.qr-form-row textarea:focus {
outline: none;
border-color: var(--primary);
box-shadow: var(--shadow-focus);
transform: translateY(-1px);
}

.qr-form-row textarea {
min-height: 100px;
resize: vertical;
}

.qr-radio-group {
display: flex;
gap: var(--space-5);
padding: var(--space-4) 0;
}

.qr-radio-group label {
display: flex;
align-items: center;
gap: var(--space-2);
cursor: pointer;
font-weight: var(--font-normal);
padding-top: 0;
}

.qr-radio-group input[type="radio"] {
width: 20px;
height: 20px;
accent-color: var(--primary);
}

.qr-select {
padding: var(--space-4) var(--space-5);
border: 2px solid var(--border-color);
border-radius: var(--radius-lg);
font-size: var(--text-base);
transition: var(--transition-base);
background: var(--bg-primary);
color: var(--text-primary);
width: 100%;
cursor: pointer;
}

body.qr-dark-theme .qr-select {
background: var(--bg-tertiary);
color: var(--text-primary);
border-color: var(--border-color);
}

.qr-fields-group {
display: contents;
}

.qr-payment-result {
display: none;
margin-top: var(--space-8);
padding: var(--space-6);
background: linear-gradient(135deg, rgba(67, 97, 238, 0.08), rgba(114, 9, 183, 0.08));
border-radius: var(--radius-xl);
text-align: center;
animation: fadeInScale 0.4s ease-out;
}

.qr-payment-qrcode {
display: flex;
justify-content: center;
margin: var(--space-5) 0;
}

.qr-payment-actions {
display: flex;
gap: var(--space-3);
justify-content: center;
flex-wrap: wrap;
margin-top: var(--space-5);
}

.qr-info-box {
margin-top: var(--space-5);
padding: var(--space-4);
background: rgba(6, 214, 160, 0.1);
border-radius: var(--radius-lg);
border-left: 4px solid var(--success);
font-size: var(--text-sm);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}

body.qr-dark-theme .qr-info-box {
background: rgba(0, 180, 216, 0.15);
}

.qr-info-box i {
color: var(--success);
margin-right: var(--space-3);
}

.qr-scanned-list {
margin-top: var(--space-8);
}

.qr-scanned-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: var(--space-4);
border-bottom: 1px solid var(--border-color);
transition: var(--transition-base);
}

.qr-scanned-item:hover {
background: rgba(67, 97, 238, 0.05);
}

.qr-scanned-item-content {
flex: 1;
word-break: break-all;
padding-right: var(--space-4);
font-family: 'Courier New', monospace;
font-size: var(--text-sm);
}

.qr-form-bank-select {
display: flex;
gap: var(--space-4);
align-items: center;
}

.qr-form-bank-select select {
flex: 1;
}

.qr-purpose-container {
display: flex;
gap: var(--space-3);
align-items: flex-start;
}

.qr-purpose-container textarea {
flex: 1;
}

.qr-purpose-container select {
width: auto;
min-width: 180px;
}

.qr-field-error {
display: none;
color: var(--danger);
font-size: var(--text-xs);
margin-top: var(--space-1);
grid-column: 2;
animation: shake 0.3s ease-in-out;
}

@keyframes shake {
0%, 100% { transform: translateX(0); }
25% { transform: translateX(-5px); }
75% { transform: translateX(5px); }
}

/* ===== BADGES & UTILITIES ===== */
.text-small {
font-size: var(--text-xs);
color: var(--text-muted);
}

.qr-nspk-badge {
display: inline-block;
padding: var(--space-1) var(--space-3);
background: linear-gradient(135deg, var(--success), #00b4d8);
color: white;
border-radius: var(--radius-full);
font-size: 10px;
font-weight: var(--font-bold);
margin-left: var(--space-3);
text-transform: uppercase;
letter-spacing: 0.5px;
box-shadow: var(--shadow-sm);
}

.qr-sbp-hint {
margin-top: var(--space-2);
font-size: var(--text-xs);
color: var(--text-muted);
display: flex;
align-items: center;
gap: var(--space-1);
}

.qr-sbp-hint i {
margin-right: var(--space-1);
color: var(--primary);
}

/* ===== FOOTER ===== */
.qr-footer {
margin-top: var(--space-15);
text-align: center;
padding: var(--space-6);
color: var(--text-muted);
font-size: var(--text-sm);
border-top: 1px solid var(--border-color);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}

/* ===== AUTO-FILL STYLES ===== */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
-webkit-text-fill-color: Revert;
transition: background-color 5000s ease-in-out 0s;
}

body.qr-dark-theme input:-webkit-autofill,
body.qr-dark-theme textarea:-webkit-autofill,
body.qr-dark-theme select:-webkit-autofill {
-webkit-text-fill-color: var(--text-primary) !important;
-webkit-box-shadow: 0 0 0px 1000px var(--bg-tertiary) inset !important;
}

/* ===== PULSE ANIMATION ===== */
.pulse {
animation: pulseGlow 2s infinite;
}

@keyframes pulseGlow {
0% { box-shadow: 0 0 0 0 rgba(67, 97, 238, 0.7); }
70% { box-shadow: 0 0 0 15px rgba(67, 97, 238, 0); }
100% { box-shadow: 0 0 0 0 rgba(67, 97, 238, 0); }
}

/* ===== REDUCED MOTION SUPPORT ===== */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}

/* ===== HIGH CONTRAST MODE ===== */
@media (prefers-contrast: high) {
.qr-btn,
.qr-type-btn,
.qr-nav-link {
border-width: 3px;
}
}

/* ===== RESPONSIVE DESIGN ===== */

/* Tablet Landscape & Desktop */
@media (min-width: 1024px) {
.qr-main-content {
grid-template-columns: 1fr 1fr;
gap: var(--space-8);
}

.qr-container {
padding: var(--space-6) var(--space-8);
}
}

/* Tablet Portrait */
@media (min-width: 768px) and (max-width: 1023px) {
.qr-main-content {
grid-template-columns: 1fr;
gap: var(--space-6);
}

.qr-container {
padding: var(--space-5) var(--space-6);
}

.qr-header {
padding: var(--space-4) var(--space-5);
}

.qr-form-row {
grid-template-columns: 1fr;
gap: var(--space-2);
}

.qr-form-row label {
padding-top: 0;
}

.qr-field-error {
grid-column: 1;
}

.qr-purpose-container {
flex-direction: column;
}

.qr-purpose-container select {
width: 100%;
}
}

/* Mobile Styles */
@media (max-width: 767px) {
.qr-container {
padding: var(--space-3);
}

.qr-header {
flex-direction: column;
align-items: stretch;
padding: var(--space-4);
}

.qr-nav-links {
display: none;
flex-direction: column;
width: 100%;
}

.qr-nav-links.qr-active {
display: flex;
animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

.qr-nav-link {
width: 100%;
justify-content: center;
min-height: 48px;
}

.qr-mobile-menu-btn {
display: flex;
}

.qr-nav {
justify-content: space-between;
width: 100%;
}

.qr-left-panel,
.qr-right-panel,
.qr-scanner-tab,
.qr-history-tab,
.qr-payment-tab {
padding: var(--space-5);
}

.qr-types-section {
justify-content: center;
}

.qr-type-btn {
flex: 1 1 calc(50% - 8px);
min-width: 130px;
justify-content: center;
padding: var(--space-4) var(--space-3) !important;
font-size: var(--text-base) !important;
flex-direction: column;
gap: var(--space-1);
min-height: 80px;
}

.qr-type-btn i {
font-size: var(--text-2xl) !important;
}

.qr-tabs {
justify-content: center;
gap: var(--space-1);
}

.qr-tab-btn {
padding: var(--space-3) var(--space-4);
font-size: var(--text-sm);
flex: 1 1 auto;
min-width: 100px;
}

.qr-actions {
flex-direction: column;
gap: var(--space-3);
}

.qr-btn {
width: 100%;
justify-content: center;
padding: var(--space-5) var(--space-6) !important;
font-size: var(--text-lg) !important;
min-height: 56px;
}

.qr-color-inputs {
flex-wrap: wrap;
}

.qr-color-inputs input[type="text"] {
width: 100%;
}

.qr-payment-type {
flex: 1 1 100%;
justify-content: center;
}

.qr-history-grid {
grid-template-columns: repeat(2, 1fr);
gap: var(--space-3);
}

.qr-logo h1 {
font-size: var(--text-2xl);
}

.qr-stats-badge {
margin-left: 0;
}

.qr-form-row {
grid-template-columns: 1fr;
gap: var(--space-2);
}

.qr-form-row label {
padding-top: 0;
}

.qr-field-error {
grid-column: 1;
}

.qr-scanner-controls {
flex-direction: column;
}

.qr-camera-selector {
width: 100%;
}

.qr-zoom-controls {
justify-content: center;
}

.qr-link-input {
flex-direction: column;
}

.qr-copy-btn {
width: 100%;
justify-content: center;
}
}

/* Small Mobile */
@media (max-width: 480px) {
.qr-type-btn {
flex: 1 1 100%;
}

.qr-history-grid {
grid-template-columns: 1fr;
}

.qr-tab-btn {
padding: var(--space-3) var(--space-3);
font-size: var(--text-xs);
}

.qr-logo {
flex-wrap: wrap;
justify-content: center;
text-align: center;
}

.qr-stats-badge {
width: 100%;
justify-content: center;
}

.qr-scanner-overlay::before,
.qr-scanner-overlay::after {
width: 40px;
height: 40px;
}

.qr-payment-types {
flex-direction: column;
}
}

/* ===== PRINT STYLES ===== */
@media print {
body {
background: white !important;
color: black !important;
}

.qr-header,
.qr-nav,
.qr-tabs,
.qr-actions,
.qr-footer,
.qr-theme-toggle,
.qr-mobile-menu-btn {
display: none !important;
}

.qr-qrcode canvas {
box-shadow: none !important;
border: 1px solid #000 !important;
}

.qr-main-content {
display: block !important;
}

.qr-left-panel,
.qr-right-panel {
box-shadow: none !important;
background: white !important;
border: none !important;
padding: 0 !important;
}
}

/* ===== LOADING STATES ===== */
.qr-loading {
display: inline-block;
width: 20px;
height: 20px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
border-top-color: white;
animation: spin 0.8s linear infinite;
}

@keyframes spin {
to { transform: rotate(360deg); }
}

.qr-loading-overlay {
position: absolute;
inset: 0;
background: rgba(255, 255, 255, 0.8);
display: flex;
align-items: center;
justify-content: center;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
border-radius: inherit;
z-index: 10;
}

body.qr-dark-theme .qr-loading-overlay {
background: rgba(0, 0, 0, 0.6);
}

/* ===== TOOLTIPS ===== */
[data-tooltip] {
position: relative;
}

[data-tooltip]:hover::before {
content: attr(data-tooltip);
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
padding: var(--space-2) var(--space-3);
background: var(--dark);
color: white;
border-radius: var(--radius-md);
font-size: var(--text-xs);
white-space: nowrap;
z-index: var(--z-tooltip);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
margin-bottom: var(--space-2);
box-shadow: var(--shadow-md);
pointer-events: none;
animation: fadeIn 0.2s ease-out;
}

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

/* ===== DISABLED STATES ===== */
.qr-btn:disabled,
.qr-type-btn:disabled,
.qr-nav-link:disabled,
input:disabled,
textarea:disabled,
select:disabled {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
filter: grayscale(0.5);
}

/* ===== UTILITY CLASSES ===== */
.qr-hidden {
display: none !important;
}

.qr-visible {
display: block !important;
}

.qr-flex {
display: flex !important;
}

.qr-grid {
display: grid !important;
}

.qr-text-center {
text-align: center !important;
}

.qr-text-left {
text-align: left !important;
}

.qr-text-right {
text-align: right !important;
}

.qr-w-full {
width: 100% !important;
}

.qr-h-full {
height: 100% !important;
}

.qr-mt-1 { margin-top: var(--space-1) !important; }
.qr-mt-2 { margin-top: var(--space-2) !important; }
.qr-mt-3 { margin-top: var(--space-3) !important; }
.qr-mt-4 { margin-top: var(--space-4) !important; }
.qr-mt-5 { margin-top: var(--space-5) !important; }

.qr-mb-1 { margin-bottom: var(--space-1) !important; }
.qr-mb-2 { margin-bottom: var(--space-2) !important; }
.qr-mb-3 { margin-bottom: var(--space-3) !important; }
.qr-mb-4 { margin-bottom: var(--space-4) !important; }
.qr-mb-5 { margin-bottom: var(--space-5) !important; }

.qr-ml-1 { margin-left: var(--space-1) !important; }
.qr-ml-2 { margin-left: var(--space-2) !important; }
.qr-ml-3 { margin-left: var(--space-3) !important; }
.qr-ml-4 { margin-left: var(--space-4) !important; }
.qr-ml-5 { margin-left: var(--space-5) !important; }

.qr-mr-1 { margin-right: var(--space-1) !important; }
.qr-mr-2 { margin-right: var(--space-2) !important; }
.qr-mr-3 { margin-right: var(--space-3) !important; }
.qr-mr-4 { margin-right: var(--space-4) !important; }
.qr-mr-5 { margin-right: var(--space-5) !important; }

.qr-p-1 { padding: var(--space-1) !important; }
.qr-p-2 { padding: var(--space-2) !important; }
.qr-p-3 { padding: var(--space-3) !important; }
.qr-p-4 { padding: var(--space-4) !important; }
.qr-p-5 { padding: var(--space-5) !important; }

/* ===== END OF STYLESHEET ===== */




/* ===== SEO AEO CONTENT STYLES ===== */
.qr-seo-section {
margin-top: 60px;
padding: 40px 0 20px;
position: relative;
overflow: hidden;
}

.qr-seo-section::before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 200px;
height: 3px;
background: linear-gradient(90deg, transparent, var(--primary), var(--secondary), transparent);
border-radius: var(--radius-full);
}

.qr-seo-title {
font-size: clamp(24px, 5vw, 32px);
font-weight: var(--font-bold);
margin-bottom: 15px;
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}

.qr-seo-title span {
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}

.qr-seo-badge {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 16px;
background: linear-gradient(135deg, rgba(67, 97, 238, 0.1), rgba(114, 9, 183, 0.1));
border-radius: var(--radius-full);
font-size: 14px;
font-weight: var(--font-semibold);
color: var(--primary);
border: 1px solid rgba(67, 97, 238, 0.2);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}

body.qr-dark-theme .qr-seo-badge {
background: linear-gradient(135deg, rgba(72, 149, 239, 0.15), rgba(181, 23, 158, 0.15));
border-color: rgba(72, 149, 239, 0.3);
}

.qr-seo-subtitle {
font-size: clamp(16px, 3vw, 18px);
color: var(--text-secondary);
margin-bottom: 40px;
line-height: 1.6;
max-width: 800px;
}

/* Сетка FAQ карточек */
.qr-faq-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 25px;
margin-bottom: 40px;
}

.qr-faq-card {
background: var(--surface-1);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: var(--radius-2xl);
padding: 28px;
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: var(--shadow-md);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
}

body.qr-dark-theme .qr-faq-card {
background: var(--surface-1);
border-color: rgba(255, 255, 255, 0.05);
}

.qr-faq-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, var(--primary), var(--secondary), var(--success));
opacity: 0;
transition: opacity 0.3s ease;
}

.qr-faq-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-xl);
}

.qr-faq-card:hover::before {
opacity: 1;
}

.qr-faq-icon {
width: 56px;
height: 56px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
border-radius: var(--radius-lg);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 20px;
box-shadow: var(--shadow-md);
transition: transform 0.3s ease;
}

.qr-faq-card:hover .qr-faq-icon {
transform: scale(1.05) rotate(3deg);
}

.qr-faq-icon i {
font-size: 28px;
color: white;
}

.qr-faq-question {
font-size: 18px;
font-weight: var(--font-bold);
margin-bottom: 15px;
color: var(--text-primary);
line-height: 1.4;
}

.qr-faq-answer {
color: var(--text-secondary);
line-height: 1.7;
font-size: 15px;
flex: 1;
}

.qr-faq-answer p {
margin-bottom: 12px;
}

.qr-faq-answer ul {
padding-left: 20px;
margin: 12px 0;
}

.qr-faq-answer li {
margin-bottom: 8px;
position: relative;
}

.qr-faq-answer li::before {
content: '▹';
color: var(--primary);
font-weight: bold;
position: absolute;
left: -18px;
}

.qr-faq-answer strong {
color: var(--primary);
font-weight: var(--font-semibold);
}

/* Секция преимуществ */
.qr-features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 20px;
margin: 40px 0;
}

.qr-feature-item {
text-align: center;
padding: 20px 15px;
background: linear-gradient(135deg, rgba(67, 97, 238, 0.05), rgba(114, 9, 183, 0.03));
border-radius: var(--radius-xl);
border: 1px solid rgba(67, 97, 238, 0.1);
transition: all 0.3s ease;
}

body.qr-dark-theme .qr-feature-item {
background: linear-gradient(135deg, rgba(72, 149, 239, 0.08), rgba(181, 23, 158, 0.05));
border-color: rgba(72, 149, 239, 0.15);
}

.qr-feature-item:hover {
transform: translateY(-3px);
border-color: var(--primary);
box-shadow: var(--shadow-md);
}

.qr-feature-item i {
font-size: 32px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 12px;
}

.qr-feature-item h4 {
font-size: 15px;
font-weight: var(--font-semibold);
color: var(--text-primary);
margin-bottom: 5px;
}

.qr-feature-item p {
font-size: 13px;
color: var(--text-muted);
}

/* Банковский блок */
.qr-banks-section {
margin: 40px 0;
padding: 30px;
background: linear-gradient(135deg, rgba(67, 97, 238, 0.05), rgba(114, 9, 183, 0.05));
border-radius: var(--radius-2xl);
border: 1px solid rgba(67, 97, 238, 0.15);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}

body.qr-dark-theme .qr-banks-section {
background: linear-gradient(135deg, rgba(72, 149, 239, 0.08), rgba(181, 23, 158, 0.08));
border-color: rgba(72, 149, 239, 0.2);
}

.qr-banks-title {
font-size: 20px;
font-weight: var(--font-bold);
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 10px;
}

.qr-banks-title i {
color: var(--success);
font-size: 24px;
}

.qr-banks-list {
display: flex;
flex-wrap: wrap;
gap: 12px 20px;
}

.qr-bank-tag {
padding: 8px 18px;
background: var(--surface-1);
border-radius: var(--radius-full);
font-size: 14px;
font-weight: var(--font-medium);
color: var(--text-primary);
border: 1px solid var(--border-color);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transition: all 0.2s ease;
display: inline-flex;
align-items: center;
gap: 8px;
}

body.qr-dark-theme .qr-bank-tag {
background: var(--bg-tertiary);
}

.qr-bank-tag:hover {
border-color: var(--primary);
transform: translateY(-2px);
box-shadow: var(--shadow-sm);
}

.qr-bank-tag i {
color: var(--success);
font-size: 12px;
}

/* SEO текстовый блок */
.qr-seo-footer-text {
margin-top: 50px;
padding: 30px;
background: var(--surface-2);
border-radius: var(--radius-xl);
border: 1px solid var(--border-color);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}

.qr-seo-footer-text h3 {
font-size: 20px;
font-weight: var(--font-bold);
margin-bottom: 20px;
color: var(--text-primary);
}

.qr-seo-footer-text p {
line-height: 1.8;
color: var(--text-secondary);
margin-bottom: 15px;
text-align: justify;
}

.qr-seo-footer-text .highlight {
color: var(--primary);
font-weight: var(--font-semibold);
}

.qr-keywords {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 20px;
}

.qr-keyword {
padding: 4px 14px;
background: rgba(67, 97, 238, 0.08);
border-radius: var(--radius-full);
font-size: 13px;
color: var(--text-secondary);
border: 1px solid rgba(67, 97, 238, 0.15);
}

body.qr-dark-theme .qr-keyword {
background: rgba(72, 149, 239, 0.12);
border-color: rgba(72, 149, 239, 0.2);
}

/* Адаптация для мобильных */
@media (max-width: 767px) {
.qr-seo-section {
margin-top: 40px;
padding: 30px 0 15px;
}

.qr-faq-grid {
grid-template-columns: 1fr;
gap: 20px;
}

.qr-faq-card {
padding: 22px;
}

.qr-faq-icon {
width: 48px;
height: 48px;
margin-bottom: 15px;
}

.qr-faq-icon i {
font-size: 24px;
}

.qr-faq-question {
font-size: 17px;
}

.qr-faq-answer {
font-size: 14px;
}

.qr-features-grid {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}

.qr-feature-item {
padding: 15px 10px;
}

.qr-feature-item i {
font-size: 28px;
}

.qr-feature-item h4 {
font-size: 14px;
}

.qr-banks-section {
padding: 20px 15px;
}

.qr-banks-list {
gap: 8px 12px;
}

.qr-bank-tag {
padding: 6px 14px;
font-size: 13px;
}

.qr-seo-footer-text {
padding: 20px 15px;
}

.qr-seo-footer-text h3 {
font-size: 18px;
}

.qr-seo-footer-text p {
font-size: 14px;
text-align: left;
}
}

@media (max-width: 480px) {
.qr-features-grid {
grid-template-columns: 1fr;
}

.qr-seo-title {
font-size: 22px;
}

.qr-seo-badge {
width: 100%;
justify-content: center;
}

.qr-bank-tag {
flex: 1 1 calc(50% - 12px);
justify-content: center;
}
}

/* Анимация появления */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

.qr-faq-card {
animation: fadeInUp 0.5s ease-out forwards;
opacity: 0;
}

.qr-faq-card:nth-child(1) { animation-delay: 0.1s; }
.qr-faq-card:nth-child(2) { animation-delay: 0.2s; }
.qr-faq-card:nth-child(3) { animation-delay: 0.3s; }
.qr-faq-card:nth-child(4) { animation-delay: 0.4s; }
.qr-faq-card:nth-child(5) { animation-delay: 0.5s; }
.qr-faq-card:nth-child(6) { animation-delay: 0.6s; }
