:root { --primary: #2563eb; --secondary: #1e40af; --accent: #3b82f6; --bg: #f8fafc; --surface: #ffffff; --text: #1e293b; --text-light: #64748b; --border: #e2e8f0; --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1); } * { font-family: 'Sarabun', sans-serif; } body { background-color: var(--bg); color: var(--text); line-height: 1.6; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* Animations */ @keyframes fade-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } @keyframes slide-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse-soft { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .animate-fade-in { animation: fade-in 0.6s ease-out; } .animate-slide-up { animation: slide-up 0.5s ease-out; } .animate-pulse-soft { animation: pulse-soft 2s ease-in-out infinite; } /* Upload Zone Styles */ .upload-zone-dragover { border-color: var(--primary) !important; background-color: #eff6ff !important; transform: scale(1.02); } /* Glass Effect */ .glass { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } /* Data Card Hover Effects */ .data-card { transition: all 0.2s ease; border: 1px solid var(--border); } .data-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: #bfdbfe; } /* Floating Controls Container */ #floating-controls-container { scrollbar-width: none; -ms-overflow-style: none; } #floating-controls-container::-webkit-scrollbar { display: none; } /* PDF Canvas Render */ #pdf-canvas, #preview-image { max-width: 100%; height: auto; box-shadow: var(--shadow-xl); border-radius: 8px; } /* Button Interactions */ .btn-interactive { transition: all 0.2s ease; position: relative; overflow: hidden; } .btn-interactive:active { transform: scale(0.95); } .btn-interactive::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.3s, height 0.3s; } .btn-interactive:hover::after { width: 200px; height: 200px; } /* JSON Syntax Highlighting */ .json-key { color: #93c5fd; } .json-string { color: #86efac; } .json-number { color: #fca5a5; } .json-boolean { color: #f9a8d4; } /* Responsive Adjustments */ @media (max-width: 640px) { .container { padding-left: 1rem; padding-right: 1rem; } #preview-container { padding: 1rem; min-height: 300px; } } /* Print Styles */ @media print { .no-print { display: none !important; } body { background: white; } #results-section { display: block !important; } }