@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
:root {
     --somvato-orange: #E87327;
     --somvato-orange-light: #fff7ed;
     --somvato-orange-soft: #fef3e7;
     --somvato-blue: #2776BB;
     --somvato-blue-light: #f0f9ff;
     --somvato-blue-soft: #e6f0fa;
     --somvato-navy: #0f172a;
     --somvato-slate: #64748b;
     --somvato-gray: #94a3b8;
     --somvato-border: #e2e8f0;
     --somvato-bg: #f8fafc;
     --glass-bg: rgba(255, 255, 255, 0.7);
     --glass-border: rgba(255, 255, 255, 0.5);
     --shadow-sm: 0 4px 6px -1px rgba(15, 23, 42, 0.05);
     --shadow-md: 0 10px 25px -5px rgba(15, 23, 42, 0.08);
     --shadow-lg: 0 20px 50px -12px rgba(15, 23, 42, 0.15);
     --shadow-xl: 0 30px 70px -15px rgba(15, 23, 42, 0.2);
     --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.02);
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Inter', sans-serif;
     background-color: var(--somvato-bg);
     color: var(--somvato-navy);
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     overflow-x: hidden;
     scroll-behavior: smooth;
     line-height: 1.6;
 }

 /* Custom Scrollbar - Enhanced */
 ::-webkit-scrollbar {
     width: 8px;
     height: 8px;
 }

 ::-webkit-scrollbar-track {
     background: #f1f5f9;
     border-radius: 10px;
 }

 ::-webkit-scrollbar-thumb {
     background: linear-gradient(135deg, var(--somvato-blue), var(--somvato-orange));
     border-radius: 10px;
     opacity: 0.8;
 }

 ::-webkit-scrollbar-thumb:hover {
     background: linear-gradient(135deg, var(--somvato-orange), var(--somvato-blue));
 }

 /* Typography - Enhanced */
 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     font-weight: 800 !important;
     letter-spacing: -0.03em;
     line-height: 1.2;
 }

 h1 {
     font-size: clamp(2.5rem, 5vw, 4rem);
 }

 h2 {
     font-size: clamp(2rem, 4vw, 3rem);
 }

 h3 {
     font-size: clamp(1.5rem, 3vw, 2rem);
 }

 p {
     color: var(--somvato-slate);
     line-height: 1.7;
 }

 /* Luxury Shadows & Effects */
 .shadow-premium {
     box-shadow: var(--shadow-lg);
 }

 .shadow-premium-xl {
     box-shadow: var(--shadow-xl);
 }

 .glass-effect {
     background: var(--glass-bg);
     backdrop-filter: blur(12px);
     -webkit-backdrop-filter: blur(12px);
     border: 1px solid var(--glass-border);
 }

 /* Professional Cards - Enhanced */
 .pro-card {
     background: white;
     border: 1px solid var(--somvato-border);
     border-radius: 2.5rem;
     padding: 2.5rem;
     transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
     position: relative;
     overflow: hidden;
     box-shadow: var(--shadow-sm);
 }

 .pro-card::before {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 4px;
     background: linear-gradient(90deg, var(--somvato-blue), var(--somvato-orange));
     transform: scaleX(0);
     transition: transform 0.5s ease;
 }

 .pro-card:hover {
     transform: translateY(-8px);
     box-shadow: var(--shadow-xl);
     border-color: transparent;
 }

 .pro-card:hover::before {
     transform: scaleX(1);
 }

 .pro-card-mini {
     border-radius: 1.5rem;
     padding: 1.5rem;
 }

 /* Professional Buttons - Enhanced */
 .btn-pro-primary,
 .btn-pro-orange {
     padding: 1.25rem 2.5rem;
     border-radius: 1.5rem;
     font-weight: 700;
     font-size: 1rem;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0.75rem;
     border: none;
     cursor: pointer;
     position: relative;
     overflow: hidden;
     letter-spacing: -0.01em;
 }

 .btn-pro-primary {
     background: linear-gradient(135deg, var(--somvato-blue) 0%, #1a5587 100%);
     color: white;
     box-shadow: 0 10px 20px -5px rgba(39, 118, 187, 0.3);
 }

 .btn-pro-orange {
     background: linear-gradient(135deg, var(--somvato-orange) 0%, #d1621f 100%);
     color: white;
     box-shadow: 0 10px 20px -5px rgba(232, 115, 39, 0.3);
 }

 .btn-pro-primary::before,
 .btn-pro-orange::before {
     content: '';
     position: absolute;
     top: 50%;
     left: 50%;
     width: 0;
     height: 0;
     border-radius: 50%;
     background: rgba(255, 255, 255, 0.2);
     transform: translate(-50%, -50%);
     transition: width 0.6s, height 0.6s;
 }

 .btn-pro-primary:hover::before,
 .btn-pro-orange:hover::before {
     width: 300px;
     height: 300px;
 }

 .btn-pro-primary:hover,
 .btn-pro-orange:hover {
     transform: scale(1.02) translateY(-2px);
     filter: brightness(1.1);
 }

 .btn-pro-primary:hover {
     box-shadow: 0 20px 40px -10px rgba(39, 118, 187, 0.4);
 }

 .btn-pro-orange:hover {
     box-shadow: 0 20px 40px -10px rgba(232, 115, 39, 0.4);
 }

 .btn-pro-outline {
     background: transparent;
     border: 2px solid var(--somvato-border);
     padding: 1.25rem 2.5rem;
     border-radius: 1.5rem;
     font-weight: 700;
     color: var(--somvato-navy);
     transition: all 0.3s ease;
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     gap: 0.75rem;
 }

 .btn-pro-outline:hover {
     border-color: var(--somvato-blue);
     background: var(--somvato-blue-light);
     transform: translateY(-2px);
 }

 .btn-pro-small {
     padding: 0.875rem 1.75rem;
     border-radius: 1rem;
     font-size: 0.875rem;
 }

 /* Form Styles - Enhanced */
 .pro-input {
     width: 100%;
     padding: 1.25rem 1.75rem;
    
     border: 2px solid #f1f5f9;
     background-color: #f8fafc;
     transition: all 0.3s ease;
     outline: none;
     font-weight: 500;
     font-size: 1rem;
     color: var(--somvato-navy);
 }

 .pro-input:hover {
     border-color: #cbd5e1;
     background-color: white;
 }

 .pro-input:focus {
     border-color: var(--somvato-blue);
     background-color: white;
     box-shadow: 0 0 0 4px var(--somvato-blue-light);
 }

 .pro-input-group {
     position: relative;
     display: flex;
     align-items: center;
 }

 .pro-input-group .pro-input {
     padding-left: 3rem;
 }

 .pro-input-group i {
     position: absolute;
     left: 1.25rem;
     color: var(--somvato-gray);
     font-size: 1.1rem;
     pointer-events: none;
 }

 .pro-select {
     appearance: none;
     background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
     background-repeat: no-repeat;
     background-position: right 1.5rem center;
     background-size: 1rem;
 }

 .pro-radio,
 .pro-checkbox {
     display: inline-flex;
     align-items: center;
     gap: 0.75rem;
     cursor: pointer;
     font-weight: 500;
 }

 .pro-radio input[type="radio"],
 .pro-checkbox input[type="checkbox"] {
     width: 1.25rem;
     height: 1.25rem;
     accent-color: var(--somvato-blue);
     cursor: pointer;
 }

 /* Test specific styles */
 .test-header {
     background: linear-gradient(135deg, var(--somvato-blue) 0%, #1a5587 100%);
     color: white;
     padding: 2rem 0;
     position: sticky;
     top: 0;
     z-index: 100;
     backdrop-filter: blur(10px);
     background: rgba(39, 118, 187, 0.95);
 }

 .test-progress {
     height: 8px;
     background: rgba(255, 255, 255, 0.2);
     border-radius: 10px;
     overflow: hidden;
     margin-top: 1rem;
 }

 .test-progress-bar {
     height: 100%;
     background: var(--somvato-orange);
     border-radius: 10px;
     transition: width 0.5s ease;
     position: relative;
     overflow: hidden;
 }

 .test-progress-bar::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;
 }

 .test-timer {
     background: var(--somvato-orange-light);
     border: 2px solid var(--somvato-orange);
     border-radius: 2rem;
     padding: 0.75rem 1.5rem;
     display: inline-flex;
     align-items: center;
     gap: 1rem;
     font-weight: 700;
     color: var(--somvato-orange);
 }

 .test-timer i {
     font-size: 1.2rem;
 }

 .test-question {
     font-size: 1.5rem;
     font-weight: 700;
     line-height: 1.4;
     margin-bottom: 2rem;
     color: var(--somvato-navy);
 }

 .test-option {
     background: white;
     border: 2px solid var(--somvato-border);
     border-radius: 1.5rem;
     padding: 1.25rem 1.75rem;
     margin-bottom: 1rem;
     cursor: pointer;
     transition: all 0.3s ease;
     display: flex;
     align-items: center;
     gap: 1rem;
 }

 .test-option:hover {
     border-color: var(--somvato-blue);
     background: var(--somvato-blue-light);
     transform: translateX(8px);
 }

 .test-option.selected {
     border-color: var(--somvato-blue);
     background: var(--somvato-blue-light);
     box-shadow: 0 0 0 4px var(--somvato-blue-light);
 }

 .test-option.correct {
     border-color: #10b981;
     background: #f0fdf4;
 }

 .test-option.incorrect {
     border-color: #ef4444;
     background: #fef2f2;
 }

 .test-option-marker {
     width: 2.5rem;
     height: 2.5rem;
     border-radius: 1rem;
     background: var(--somvato-bg);
     display: flex;
     align-items: center;
     justify-content: center;
     font-weight: 700;
     color: var(--somvato-navy);
     transition: all 0.3s ease;
 }

 .test-option:hover .test-option-marker {
     background: var(--somvato-blue);
     color: white;
 }

 .test-option.selected .test-option-marker {
     background: var(--somvato-blue);
     color: white;
 }

 /* Question navigator */
 .question-nav {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(3rem, 1fr));
     gap: 0.75rem;
     margin-top: 1.5rem;
 }

 .question-nav-item {
     width: 3rem;
     height: 3rem;
     border-radius: 1rem;
     background: white;
     border: 2px solid var(--somvato-border);
     display: flex;
     align-items: center;
     justify-content: center;
     font-weight: 700;
     cursor: pointer;
     transition: all 0.3s ease;
 }

 .question-nav-item:hover {
     border-color: var(--somvato-blue);
     transform: scale(1.05);
 }

 .question-nav-item.active {
     background: var(--somvato-blue);
     border-color: var(--somvato-blue);
     color: white;
 }

 .question-nav-item.answered {
     background: var(--somvato-orange-light);
     border-color: var(--somvato-orange);
     color: var(--somvato-orange);
 }

 .question-nav-item.answered.active {
     background: var(--somvato-orange);
     color: white;
 }

 /* Results & Score cards */
 .score-card {
     text-align: center;
     padding: 3rem;
     background: linear-gradient(135deg, white, var(--somvato-blue-light));
     border-radius: 2.5rem;
 }

 .score-circle {
     width: 150px;
     height: 150px;
     margin: 0 auto 2rem;
     position: relative;
 }

 .score-circle svg {
     width: 100%;
     height: 100%;
     transform: rotate(-90deg);
 }

 .score-circle-bg {
     fill: none;
     stroke: #e2e8f0;
     stroke-width: 8;
 }

 .score-circle-progress {
     fill: none;
     stroke: url(#gradient);
     stroke-width: 8;
     stroke-linecap: round;
     stroke-dasharray: 440;
     stroke-dashoffset: 440;
     animation: progress 1.5s ease-out forwards;
 }

 .score-number {
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     font-size: 2.5rem;
     font-weight: 800;
     color: var(--somvato-navy);
 }

 .score-label {
     font-size: 1.1rem;
     color: var(--somvato-slate);
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 /* Badges & Tags */
 .pro-badge {
     display: inline-flex;
     align-items: center;
     padding: 0.5rem 1rem;
     border-radius: 2rem;
     font-weight: 600;
     font-size: 0.875rem;
     background: var(--somvato-blue-light);
     color: var(--somvato-blue);
 }

 .pro-badge-orange {
     background: var(--somvato-orange-light);
     color: var(--somvato-orange);
 }

 /* Animations - Enhanced */
 @keyframes fadeInUp {
     from {
         opacity: 0;
         transform: translateY(30px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes fadeInLeft {
     from {
         opacity: 0;
         transform: translateX(-30px);
     }

     to {
         opacity: 1;
         transform: translateX(0);
     }
 }

 @keyframes fadeInRight {
     from {
         opacity: 0;
         transform: translateX(30px);
     }

     to {
         opacity: 1;
         transform: translateX(0);
     }
 }

 @keyframes pop {
     0% {
         transform: scale(0.9);
     }

     50% {
         transform: scale(1.05);
     }

     100% {
         transform: scale(1);
     }
 }

 @keyframes shake {

     0%,
     100% {
         transform: translateX(0);
     }

     25% {
         transform: translateX(-5px);
     }

     75% {
         transform: translateX(5px);
     }
 }

 @keyframes pulse {
     0% {
         transform: scale(1);
         opacity: 1;
     }

     50% {
         transform: scale(1.05);
         opacity: 0.8;
     }

     100% {
         transform: scale(1);
         opacity: 1;
     }
 }

 @keyframes shimmer {
     0% {
         transform: translateX(-100%);
     }

     100% {
         transform: translateX(100%);
     }
 }

 @keyframes progress {
     to {
         stroke-dashoffset: 0;
     }
 }

 @keyframes float {
     0% {
         transform: translateY(0px);
     }

     50% {
         transform: translateY(-10px);
     }

     100% {
         transform: translateY(0px);
     }
 }

 /* Animation Classes */
 .animate-fade-in-up {
     animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
 }

 .animate-fade-in-left {
     animation: fadeInLeft 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
 }

 .animate-fade-in-right {
     animation: fadeInRight 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
 }

 .animate-pop {
     animation: pop 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
 }

 .animate-shake {
     animation: shake 0.4s ease-in-out;
 }

 .animate-pulse {
     animation: pulse 2s infinite ease-in-out;
 }

 .animate-float {
     animation: float 3s infinite ease-in-out;
 }

 /* Background Gradients - Enhanced */
 .bg-mesh {
     background-color: #f8fafc;
     background-image:
         radial-gradient(at 0% 0%, rgba(39, 118, 187, 0.08) 0px, transparent 50%),
         radial-gradient(at 100% 100%, rgba(232, 115, 39, 0.08) 0px, transparent 50%),
         radial-gradient(at 50% 50%, rgba(39, 118, 187, 0.03) 0px, transparent 50%);
 }

 .bg-mesh-dark {
     background-color: var(--somvato-navy);
     background-image:
         radial-gradient(at 0% 0%, rgba(232, 115, 39, 0.15) 0px, transparent 50%),
         radial-gradient(at 100% 100%, rgba(39, 118, 187, 0.15) 0px, transparent 50%);
 }

 .bg-somvato-blue {
     background: linear-gradient(135deg, var(--somvato-blue) 0%, #1a5587 100%);
 }

 .bg-somvato-orange {
     background: linear-gradient(135deg, var(--somvato-orange) 0%, #d1621f 100%);
 }

 .bg-gradient {
     background: linear-gradient(135deg, var(--somvato-blue), var(--somvato-orange));
 }

 /* Text Gradients - Enhanced */
 .text-gradient {
     background: linear-gradient(135deg, var(--somvato-blue), var(--somvato-orange));
     -webkit-background-clip: text;
     background-clip: text;
     -webkit-text-fill-color: transparent;
     display: inline-block;
 }

 .text-gradient-blue {
     background: linear-gradient(135deg, var(--somvato-blue), #1a5587);
     -webkit-background-clip: text;
     background-clip: text;
     -webkit-text-fill-color: transparent;
 }

 .text-gradient-orange {
     background: linear-gradient(135deg, var(--somvato-orange), #d1621f);
     -webkit-background-clip: text;
     background-clip: text;
     -webkit-text-fill-color: transparent;
 }

 /* Utility Hooks - Enhanced */
 /* Engagement Utilities */
 .animate-shimmer {
     background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
     background-size: 200% 100%;
     animation: shimmer 2s infinite linear;
 }

 @keyframes shimmer {
     0% {
         background-position: -200% 0;
     }

     100% {
         background-position: 200% 0;
     }
 }

 .animate-float {
     animation: float 6s ease-in-out infinite;
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0);
     }

     50% {
         transform: translateY(-10px);
     }
 }

 .glass-premium {
     background: rgba(255, 255, 255, 0.7);
     backdrop-filter: blur(12px) saturate(180%);
     -webkit-backdrop-filter: blur(12px) saturate(180%);
     border: 1px solid rgba(255, 255, 255, 0.3);
 }

 .glass-dark {
     background: rgba(15, 23, 42, 0.8);
     backdrop-filter: blur(12px) saturate(180%);
     -webkit-backdrop-filter: blur(12px) saturate(180%);
     border: 1px solid rgba(255, 255, 255, 0.1);
 }

 .shadow-glow-blue {
     box-shadow: 0 0 20px rgba(39, 118, 187, 0.2);
 }

 .shadow-glow-orange {
     box-shadow: 0 0 20px rgba(232, 115, 39, 0.2);
 }

 .text-reveal {
     background-size: 200% auto;
     background-clip: text;
     -webkit-background-clip: text;
     animation: shine 3s linear infinite;
 }

 @keyframes shine {
     to {
         background-position: 200% center;
     }
 }

 /* Scrollbar Enhancement */
 ::-webkit-scrollbar {
     width: 6px;
     height: 6px;
 }

 ::-webkit-scrollbar-thumb {
     background: var(--somvato-blue);
     border-radius: 10px;
 }

 ::-webkit-scrollbar-track {
     background: rgba(15, 23, 42, 0.05);
 }

 .pro-divider {
     height: 2px;
     background: linear-gradient(90deg, transparent, var(--somvato-border), transparent);
     margin: 2rem 0;
 }

 .pro-separator {
     display: flex;
     align-items: center;
     text-align: center;
     color: var(--somvato-gray);
 }

 .pro-separator::before,
 .pro-separator::after {
     content: '';
     flex: 1;
     border-bottom: 2px solid var(--somvato-border);
 }

 .pro-separator:not(:empty)::before {
     margin-right: 1rem;
 }

 .pro-separator:not(:empty)::after {
     margin-left: 1rem;
 }

 /* Loading States */
 .pro-skeleton {
     background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
     background-size: 200% 100%;
     animation: loading 1.5s infinite;
     border-radius: 1rem;
 }

 @keyframes loading {
     0% {
         background-position: 200% 0;
     }

     100% {
         background-position: -200% 0;
     }
 }

 /* Responsive Design */
 @media (max-width: 768px) {
     .pro-card {
         padding: 1.5rem;
         border-radius: 1.5rem;
     }

     .btn-pro-primary,
     .btn-pro-orange,
     .btn-pro-outline {
         padding: 1rem 2rem;
         border-radius: 1rem;
     }

     .test-option {
         padding: 1rem 1.25rem;
         border-radius: 1rem;
     }

     .question-nav {
         grid-template-columns: repeat(5, 1fr);
     }

     .score-card {
         padding: 2rem;
     }
 }

 @media (max-width: 480px) {
     h1 {
         font-size: 2rem;
     }

     h2 {
         font-size: 1.75rem;
     }

     h3 {
         font-size: 1.25rem;
     }

     .question-nav {
         grid-template-columns: repeat(4, 1fr);
     }
 }

 /* Print Styles */
 @media print {
     .no-print {
         display: none;
     }

     body {
         background: white;
     }

     .pro-card {
         box-shadow: none;
         border: 1px solid #ddd;
     }
 }