:root{--primary-100: #e6f6f5;--primary-200: #c3ebe9;--primary-300: #9fdedb;--primary-400: #70ceca;--primary-500: #4cbbb7;--primary-600: #38a39f;--primary-700: #2d8580;--primary-800: #236661;--primary-900: #1a4a47;--accent-teal: #38a39f;--accent-green: #4abe9b;--accent-yellow: #f0cc59;--accent-red: #ef8080;--neutral-50: #f8fafb;--neutral-100: #f0f4f4;--neutral-200: #e2e8e8;--neutral-300: #cad4d4;--neutral-400: #a2b0b0;--neutral-500: #7b8c8c;--neutral-600: #5d6b6b;--neutral-700: #445151;--neutral-800: #2c3636;--neutral-900: #161c1c;--font-family-sans: system-ui, Avenir, Helvetica, Arial, sans-serif;--font-family-serif: "Georgia", serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);font-family:var(--font-family-sans);line-height:1.5;font-weight:400;color:var(--neutral-800);background-color:var(--neutral-50);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--primary-600);text-decoration:inherit}a:hover{color:var(--primary-700)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--neutral-200);cursor:pointer;transition:all .25s}button:hover{border-color:var(--primary-500);background-color:var(--neutral-100)}button:focus,button:focus-visible{outline:3px solid rgba(79,117,116,.25)}@media(prefers-color-scheme:light){:root{color:var(--neutral-800);background-color:var(--neutral-50)}a:hover{color:var(--primary-700)}button{background-color:var(--neutral-100)}}body,html{width:100%;height:100%;font-family:var(--font-family-sans);overflow-x:hidden;background-color:var(--neutral-50);color:var(--neutral-800)}#root{width:100%;height:100%}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%}.main-content{flex:1;width:100%}@media(max-width:768px){.hero-section{flex-direction:column;padding:40px 20px;text-align:center}.hero-content{width:100%;max-width:100%;padding-right:0;margin-bottom:40px}.hero-image{width:90%;max-width:400px}.cta-buttons{justify-content:center}.feature-card{width:calc(50% - 20px)}}@media(max-width:480px){h1.headline{font-size:32px}.feature-card,.btn-primary,.btn-secondary{width:100%}.cta-buttons{flex-direction:column;width:100%}}.loading-spinner{display:flex;justify-content:center;align-items:center;height:100vh;font-size:20px;color:var(--primary-600)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%;overflow-x:hidden;margin:0;padding:0}.landing-container{font-family:var(--font-family-sans);width:100%;min-height:100vh;display:flex;flex-direction:column}.hero-section{background:linear-gradient(145deg,var(--primary-100),#e8f8f7);padding:100px max(4%,20px);text-align:left;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:90vh;position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;top:-10%;right:-10%;width:40%;height:60%;background-color:#4cbbb726;border-radius:50%;z-index:0;filter:blur(60px)}.hero-content{max-width:550px;width:50%;padding-right:20px}.hero-image{width:45%;max-width:500px;height:auto;aspect-ratio:4/3;background-color:#f5f5f5;border-radius:10%;display:flex;align-items:center;justify-content:center;overflow:hidden}h1.headline{font-size:42px;color:#2d3748;margin-bottom:15px;font-weight:700}.blue-text{color:var(--primary-600)}.hero-description{color:#4a5568;font-size:17px;line-height:1.6;margin-bottom:30px}.cta-buttons{display:flex;gap:15px;margin-top:20px}.btn-primary{background:linear-gradient(90deg,var(--primary-500),var(--primary-600));color:#fff;padding:12px 26px;border-radius:var(--radius-md);border:none;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #38a39f40}.btn-primary:hover{background:linear-gradient(90deg,var(--primary-600),var(--primary-700));transform:translateY(-2px);box-shadow:0 6px 16px #2d858059}.btn-secondary{background-color:#fff;color:var(--primary-600);padding:12px 26px;border-radius:var(--radius-md);border:1px solid var(--neutral-200);font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{border-color:var(--primary-400);background-color:var(--primary-50);transform:translateY(-2px)}.features-section{padding:80px max(4%,20px);text-align:center;background-color:#fff;width:100%}.section-title{font-size:32px;color:var(--neutral-900);margin-bottom:20px;font-weight:600}.section-subtitle{color:var(--neutral-600);font-size:17px;max-width:700px;margin:0 auto 50px}.features-grid{display:flex;justify-content:center;gap:max(2%,25px);flex-wrap:wrap;width:100%;max-width:1400px;margin:0 auto}.feature-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:30px 20px;width:calc(25% - 20px);min-width:240px;text-align:center;transition:transform .2s,box-shadow .2s}.feature-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0000000d}.feature-icon{background-color:#e6f0ff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;color:#2e90fa}.feature-title{font-weight:600;margin-bottom:10px;color:#2d3748}.feature-description{color:#718096;font-size:14px;line-height:1.5}.cta-section{background-color:#f0f8ff;padding:80px max(4%,20px);text-align:center;width:100%;min-height:50vh;display:flex;flex-direction:column;justify-content:center;align-items:center}.cta-button{margin-top:25px;display:inline-block}.landing-footer{background-color:#1a355e;color:#fff;padding:60px max(4%,20px) 20px;width:100%}.footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:1400px;margin:0 auto;gap:40px}.footer-section{flex:1;min-width:250px}.footer-title{color:#fff;font-size:20px;margin-bottom:20px;position:relative;font-weight:600}.footer-title:after{content:"";position:absolute;left:0;bottom:-10px;width:50px;height:2px;background-color:#2e90fa}.footer-description{color:#e2e8f0;line-height:1.6;margin-top:20px}.footer-links{list-style:none;padding:0;margin-top:20px}.footer-links li{margin-bottom:12px}.footer-links a{color:#e2e8f0;text-decoration:none;transition:color .2s}.footer-links a:hover{color:#2e90fa}.footer-link-btn{background:none;border:none;color:#e2e8f0;padding:0;font-size:16px;cursor:pointer;transition:color .2s;text-align:left;font-family:inherit}.footer-link-btn:hover{color:var(--primary-500);background:none}.footer-contact p{margin-bottom:8px;color:#e2e8f0}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);text-align:center;padding-top:20px;margin-top:40px;font-size:14px;color:#cbd5e0}@media(max-width:768px){.footer-content{flex-direction:column}.footer-section{margin-bottom:30px}}.test-card{background-color:#fff;border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-sm);transition:all .3s ease;display:flex;flex-direction:column;height:100%;border:1px solid var(--neutral-200);position:relative;overflow:hidden}.test-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--primary-200)}.test-card:before{content:"";position:absolute;top:0;left:0;height:4px;width:100%;background:linear-gradient(90deg,var(--primary-500),var(--primary-600));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.test-card:hover:before{transform:scaleX(1)}.test-icon{display:flex;align-items:center;margin-bottom:10px}.icon-container{background-color:var(--primary-100);width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:18px;margin-right:12px;color:var(--primary-600)}.test-category{font-size:12px;color:#64748b}.test-name{color:var(--neutral-800);font-size:18px;margin-bottom:12px;font-weight:600;line-height:1.3}.test-description{color:#64748b;font-size:14px;line-height:1.5;margin-bottom:15px;flex-grow:1}.test-details{display:flex;justify-content:space-between;margin-bottom:15px;font-size:14px}.test-timing,.test-price{display:flex;align-items:center;color:#64748b}.details-icon{margin-right:8px;color:var(--primary-500)}.book-test-btn{background:linear-gradient(90deg,var(--primary-500),var(--primary-600));color:#fff;border:none;border-radius:var(--radius-md);padding:12px 0;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%;font-size:15px;box-shadow:0 2px 8px #4cbbb74d}.book-test-btn:hover{background:linear-gradient(90deg,var(--primary-600),var(--primary-700));box-shadow:0 4px 12px #2d858066;transform:translateY(-2px)}.lab-catalog-container{max-width:1200px;margin:0 auto;padding:30px 20px}.catalog-header{margin-bottom:30px}.catalog-title{color:#1a355e;font-size:28px;font-weight:700;margin-bottom:10px}.catalog-subtitle{color:#64748b;font-size:16px;line-height:1.5}.search-container{margin-bottom:30px;position:relative}.search-input{width:100%;max-width:400px;padding:12px 15px 12px 40px;border:1px solid #e2e8f0;border-radius:6px;font-size:15px;background-color:#f8fafc;transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:#2e90fa;box-shadow:0 0 0 3px #2e90fa1a}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:16px}.tests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:25px}.loading-container{display:flex;justify-content:center;align-items:center;height:300px;width:100%}.loading-spinner{border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top:4px solid #2e90fa;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{color:#e53e3e;text-align:center;padding:20px;background-color:#fff5f5;border-radius:8px;border:1px solid #fed7d7}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;padding:2rem 2.5rem;border-radius:10px;box-shadow:0 8px 32px #0003;min-width:320px;max-width:90vw;position:relative}.modal-content h2{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.success-message{background:#d4edda;color:#155724;border:1px solid #b7e4c7;padding:1rem 1.5rem;border-radius:6px;margin:1rem auto;max-width:400px;display:flex;align-items:center;justify-content:space-between;font-weight:500}.close-success{background:none;border:none;color:#155724;font-size:1.2rem;cursor:pointer;margin-left:1rem}@media(max-width:768px){.tests-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media(max-width:480px){.tests-grid{grid-template-columns:1fr}}.navbar{background-color:#fff;box-shadow:0 2px 10px #0000000d;padding:0;position:sticky;top:0;z-index:1000}.navbar-container{display:flex;justify-content:space-between;align-items:center;padding:0 20px;height:70px;max-width:1400px;margin:0 auto}.navbar-logo{display:flex;align-items:center;cursor:pointer}.logo-text{color:var(--primary-600);font-weight:700;font-size:24px;letter-spacing:-.5px;text-shadow:0 1px 1px rgba(0,0,0,.05)}.navbar-links{display:flex;align-items:center}.nav-link{color:#64748b;margin:0 15px;font-size:16px;font-weight:500;transition:all .2s;cursor:pointer;padding:6px 12px;border-radius:6px}.nav-link:hover,.nav-link.active{color:var(--primary-600);background-color:#4cbbb71a}.navbar-auth,.auth-buttons{display:flex;align-items:center}.login-btn{color:var(--primary-600);margin-right:15px;font-weight:500;cursor:pointer}.signup-btn{background:linear-gradient(90deg,var(--primary-500),var(--primary-600));color:#fff;padding:8px 18px;border-radius:var(--radius-md);font-weight:500;transition:all .3s ease;cursor:pointer;box-shadow:0 2px 8px #4cbbb733}.signup-btn:hover{background:linear-gradient(90deg,var(--primary-600),var(--primary-700));transform:translateY(-1px);box-shadow:0 4px 12px #38a39f4d}.user-menu{display:flex;align-items:center}.user-info{display:flex;align-items:center;margin-right:15px;color:#1a355e}.user-icon{margin-right:8px;font-size:20px;color:var(--primary-600)}.logout-btn{background:none;border:1px solid #e2e8f0;padding:6px 12px;border-radius:6px;cursor:pointer;color:#64748b;transition:all .2s}.logout-btn:hover{border-color:var(--primary-600);color:var(--primary-600)}@media(max-width:768px){.navbar-container{padding:0 15px}.nav-link{margin:0 10px}.logo-text{font-size:20px}}@media(max-width:576px){.navbar-links,.login-btn,.user-info span{display:none}}.my-bookings-container{max-width:1200px;margin:0 auto;padding:30px 20px;min-height:80vh}.cancel-booking-btn{color:#b91c1c}.my-bookings-header{margin-bottom:30px;position:relative;padding-bottom:15px}.my-bookings-header:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:4px;background:linear-gradient(90deg,var(--primary-500),var(--primary-600));border-radius:2px}.my-bookings-header h1{font-size:32px;font-weight:700;color:var(--neutral-900);margin-bottom:12px}.my-bookings-header p{font-size:16px;color:#64748b;max-width:600px}.booking-list{display:flex;flex-direction:column;gap:24px;margin-top:30px}.booking-card{background-color:#fff;border-radius:12px;box-shadow:0 4px 20px #0000000d;padding:28px;position:relative;border:1px solid #f1f5f9;transition:transform .2s ease,box-shadow .2s ease}.booking-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #00000014}.booking-title{font-size:22px;font-weight:600;margin-bottom:22px;color:#1e293b;padding-right:90px}.booking-dates{display:flex;gap:40px;margin-bottom:24px;flex-wrap:wrap}.booking-date-item{display:flex;align-items:center;gap:10px;padding:8px 0}.booking-date-item svg{color:#2e90fa;font-size:18px}.booking-date-label{color:#64748b;font-size:14px;font-weight:500}.booking-date-value{color:#1e293b;font-weight:600}.booking-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-bottom:24px;padding:16px;background-color:#f8fafc;border-radius:8px}.booking-detail-item{display:flex;align-items:center}.booking-detail-label{min-width:100px;color:#64748b;font-size:14px;font-weight:500}.booking-detail-value{color:#1e293b;font-weight:600;word-break:break-word}.booking-status{position:absolute;top:28px;right:28px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.status-completed{background-color:#22c55e1f;color:#15803d}.status-processing{background-color:#fbbf241f;color:#b45309}.status-pending{background-color:#4cbbb71f;color:var(--primary-600)}.status-cancelled{background-color:#ef44441f;color:#b91c1c}.download-report-btn{background:linear-gradient(90deg,var(--primary-500),var(--primary-600));border:none;padding:10px 18px;border-radius:var(--radius-md);display:flex;align-items:center;gap:8px;cursor:pointer;color:#fff;font-weight:600;transition:all .3s ease;margin-top:8px;align-self:flex-start;box-shadow:0 2px 8px #4cbbb740}.download-report-btn:hover{background:linear-gradient(90deg,var(--primary-600),var(--primary-700));box-shadow:0 4px 12px #2d858066;transform:translateY(-2px)}.download-report-btn:active{transform:translateY(1px)}.download-report-btn svg{font-size:16px}.no-bookings{text-align:center;padding:60px 0;color:#64748b;background-color:#f8fafc;border-radius:12px;border:1px dashed #cbd5e1}.loading{display:flex;justify-content:center;align-items:center;padding:100px 0;color:#64748b;font-size:18px;position:relative}.loading:before{content:"";width:24px;height:24px;border:3px solid #cbd5e1;border-top-color:#2e90fa;border-radius:50%;margin-right:12px;animation:spin 1s linear infinite}.error{text-align:center;padding:40px;color:#ef4444;background-color:#fee2e2;border-radius:12px;margin:40px 0;border:1px solid #fecaca}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.my-bookings-container{padding:20px 16px}.my-bookings-header h1{font-size:28px}.booking-card{padding:20px}.booking-title{font-size:20px;margin-bottom:20px;padding-right:0}.booking-dates{flex-direction:column;gap:12px}.booking-status{position:static;margin-bottom:16px;display:inline-block}.booking-details{grid-template-columns:1fr;padding:12px}}@media(max-width:480px){.my-bookings-header h1{font-size:24px}.booking-card{padding:16px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--primary-100),#e8f8f7);position:relative}.login-container:before{content:"";position:absolute;top:15%;right:15%;width:300px;height:300px;background-color:#4cbbb726;border-radius:50%;filter:blur(60px);z-index:0}.login-container:after{content:"";position:absolute;bottom:10%;left:10%;width:200px;height:200px;background-color:#38a39f1f;border-radius:50%;filter:blur(60px);z-index:0}.login-form{width:100%;max-width:440px;background:#fff;border-radius:var(--radius-lg);padding:2.5rem 2rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:16px;position:relative;z-index:1;border:1px solid var(--neutral-200)}.login-form h2{font-size:2rem;font-weight:700;margin-bottom:8px;color:var(--neutral-900)}input{padding:14px 16px;border:1px solid var(--neutral-200);border-radius:var(--radius-md);font-size:1rem;outline:none;background:var(--neutral-50);width:100%;transition:all .2s ease}.forgot-pass{font-size:.9rem;text-align:right;margin-top:-8px}.forgot-pass a{color:var(--primary-600);text-decoration:none;transition:color .2s ease}.forgot-pass a:hover{color:var(--primary-700);text-decoration:underline}.switch-auth a:hover{color:var(--primary-700);text-decoration:underline}.error-msg,.success-msg{padding:10px 12px;border-radius:6px;font-size:.85rem}.error-msg{background:#ffe4e6;color:#a61f3d}.success-msg{background:#e6f9ed;color:#1f6d3d}.register-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--primary-100),#e8f8f7);position:relative}.register-container:before{content:"";position:absolute;top:15%;right:15%;width:300px;height:300px;background-color:#4cbbb726;border-radius:50%;filter:blur(60px);z-index:0}.register-container:after{content:"";position:absolute;bottom:10%;left:10%;width:200px;height:200px;background-color:#38a39f1f;border-radius:50%;filter:blur(60px);z-index:0}.register-form{width:100%;max-width:440px;background:#fff;border-radius:var(--radius-lg);padding:2.5rem 2rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:16px;position:relative;z-index:1;border:1px solid var(--neutral-200)}.register-form h2{font-size:2rem;font-weight:700;margin-bottom:8px;color:var(--neutral-900)}.subtitle{font-size:1rem;color:var(--neutral-600);margin-bottom:12px}label{font-size:.9rem;font-weight:600;display:flex;flex-direction:column;gap:8px;color:var(--neutral-700)}input{padding:14px 16px;border:1px solid var(--neutral-200);border-radius:var(--radius-md);font-size:1rem;outline:none;background:var(--neutral-50);width:100%;transition:all .2s ease;color:var(--neutral-900)}input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #4cbbb726;background-color:#fff}.password-input{position:relative;display:flex;align-items:center}.password-input input{flex:1}.toggle-eye{position:absolute;right:16px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1.1rem;color:var(--neutral-500);transition:color .2s ease}.toggle-eye:hover{color:var(--primary-600)}button[type=submit]{margin-top:12px;padding:14px;background:linear-gradient(90deg,var(--primary-500),var(--primary-600));color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #4cbbb740;width:100%}button[type=submit]:hover{background:linear-gradient(90deg,var(--primary-600),var(--primary-700));transform:translateY(-2px);box-shadow:0 6px 16px #2d858066}button[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.error-msg,.success-msg{padding:14px 18px;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:8px;display:flex;align-items:center;gap:8px}.error-msg{background:#ef808014;color:var(--accent-red);border:1px solid rgba(239,128,128,.2)}.success-msg{background:#4abe9b14;color:var(--accent-green);border:1px solid rgba(74,190,155,.2)}.switch-auth{font-size:.95rem;margin-top:16px;text-align:center;color:var(--neutral-600)}.switch-auth a{color:var(--primary-600);text-decoration:none;font-weight:600;transition:all .2s ease}.switch-auth a:hover{color:var(--primary-700);text-decoration:underline;font-weight:600}
