:root{--tca-blue:#0a3161;--tca-navy:#061b3a;--tca-red:#b31942;--tca-white:#ffffff;--tca-silver:#c9d1dc;--tca-gold:#f2b705;--tca-blue-light:#1a4a7a;--tca-blue-lighter:#2a5a8a;--tca-red-light:#c92952;--tca-red-dark:#8a1232;--paper:#fbfbf8;--ink:#0f172a;--muted:#475569}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}.min-h-screen{min-height:100vh}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.text-center{text-align:center}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold{font-weight:700}.mb-4{margin-bottom:1rem}.text-gray-600{color:#4b5563}.page-container{min-height:100vh;padding:2rem;background-color:#f9fafb}.form-container{max-width:500px;margin:0 auto;padding:2rem;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.form-container h1{font-size:1.5rem;font-weight:600}.form-description{margin-bottom:1.5rem;font-size:.875rem}.personal-info-form{gap:1rem}.form-group,.personal-info-form{display:flex;flex-direction:column}.form-group{gap:.25rem}.form-group label{font-size:.875rem;font-weight:500;color:#374151}.required{color:#dc2626}.form-group input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--tca-blue);box-shadow:0 0 0 3px rgba(10,49,97,.1)}.form-group input.input-error:focus{box-shadow:0 0 0 3px rgba(220,38,38,.1)}.error-message{font-size:.75rem;margin-top:.25rem}.submit-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:6px}.submit-error,.submit-success{padding:.75rem;font-size:.875rem}.submit-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;border-radius:6px}.submit-button{background-color:var(--tca-blue);color:white;padding:.75rem 1rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .15s;margin-top:.5rem}.submit-button:hover:not(:disabled){background-color:var(--tca-navy)}.submit-button:disabled{background-color:#9ca3af;cursor:not-allowed}.main-navigation{background-color:white;border-bottom:1px solid #e5e7eb;padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-container{max-width:1200px;margin:0 auto;justify-content:space-between}.nav-container,.nav-logo{display:flex;align-items:center}.nav-logo{gap:.5rem;font-size:1.25rem;font-weight:600;color:#111827}.nav-logo .logo-image{border-radius:6px}.nav-logo .logo-text{display:inline}.mobile-menu-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer}.nav-menu{align-items:center;gap:2rem}.flow-progress,.nav-menu,.step-list{display:flex}.step-list{list-style:none;gap:.5rem}.step-item,.step-link{display:flex;align-items:center}.step-link{gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;color:#6b7280;transition:all .15s}.step-link:hover{background-color:#f3f4f6}.step-item.active .step-link{background-color:rgba(10,49,97,.08);color:var(--tca-blue)}.step-item.completed .step-link{color:#16a34a}.step-number{width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#e5e7eb;font-size:.625rem;font-weight:600}.step-item.active .step-number{background-color:var(--tca-blue);color:white}.step-item.completed .step-number{background-color:#16a34a;color:white}.step-label{display:none}.nav-links{display:flex;align-items:center;gap:1rem}.nav-link{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;color:#374151;transition:all .15s}.nav-link:hover{background-color:#f3f4f6}.nav-link.active{background-color:rgba(10,49,97,.08);color:var(--tca-blue)}.nav-link.register-link{background-color:var(--tca-blue);color:white}.nav-link.register-link:hover{background-color:var(--tca-navy)}.logout-button{background:none;border:none;cursor:pointer}.step-navigation{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.step-progress{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.step-indicator{font-size:.875rem;color:#6b7280;white-space:nowrap}.step-navigation .progress-bar{flex:1 1;height:4px;background-color:#e5e7eb;border-radius:2px;overflow:hidden}.step-navigation .progress-fill{height:100%;background-color:var(--tca-blue);transition:width .3s ease}.step-actions{display:flex;justify-content:space-between;gap:1rem}.step-button{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .15s}.prev-button{background:none;border:1px solid #d1d5db;color:#374151}.prev-button:hover{background-color:#f3f4f6}.next-button{background-color:var(--tca-blue);border:none;color:white;margin-left:auto}.next-button:hover:not(:disabled){background-color:var(--tca-navy)}.next-button:disabled{background-color:#9ca3af;cursor:not-allowed}.skip-button{background:none;border:none;color:#6b7280;text-decoration:underline}.auth-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:2rem;background-color:#f9fafb}.auth-container{max-width:400px;width:100%;background:white;padding:2rem;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);text-align:center}.auth-container h1{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#111827}.auth-subtitle{color:#6b7280;margin-bottom:1.5rem;font-size:.875rem}.auth-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.field-hint{font-size:.75rem;color:#6b7280;margin-top:.25rem}.auth-links{margin-top:1.5rem;font-size:.875rem;color:#6b7280}.auth-links a{color:var(--tca-blue)}.auth-links a:hover{text-decoration:underline}.auth-links p{margin-top:.5rem}.success-icon{width:3rem;height:3rem;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background-color:#dcfce7;color:#16a34a;border-radius:50%;font-size:1.5rem}.landing-page{min-height:calc(100vh - 60px)}.hero-section{background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white;padding:4rem 2rem;text-align:center}.hero-content{max-width:800px;margin:0 auto}.hero-section h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.hero-subtitle{font-size:1.25rem;opacity:.9;margin-bottom:2rem}.primary-button{display:inline-block;background-color:white;color:var(--tca-blue);padding:.75rem 1.5rem;border-radius:6px;font-weight:500;transition:all .15s}.primary-button:hover{background-color:#f3f4f6}.secondary-button{display:inline-block;background-color:transparent;color:white;padding:.75rem 1.5rem;border:2px solid white;border-radius:6px;font-weight:500;transition:all .15s}.secondary-button:hover{background-color:rgba(255,255,255,.1)}.features-section{padding:4rem 2rem;background-color:white}.features-section h2{text-align:center;font-size:2rem;margin-bottom:2rem;color:#111827}.features-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));max-width:1000px;margin:0 auto}.feature-card{text-align:center;padding:1.5rem}.feature-card h3{font-size:1.125rem;margin-bottom:.5rem;color:#111827}.feature-card p{color:#6b7280;font-size:.875rem}.pricing-section{padding:4rem 2rem;background-color:#f9fafb}.pricing-section h2{text-align:center;font-size:2rem;margin-bottom:2rem;color:#111827}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem;max-width:900px;margin:0 auto}.pricing-card{background:white;padding:2rem;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);text-align:center;position:relative}.pricing-card.featured{border:2px solid var(--tca-blue)}.pricing-card .badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background-color:var(--tca-blue);color:white;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:500}.pricing-card h3{font-size:1.25rem;margin-bottom:.5rem;color:#111827}.pricing-card .price{font-size:2rem;font-weight:700;color:var(--tca-blue);margin-bottom:1rem}.pricing-card ul{list-style:none;text-align:left;margin-bottom:1.5rem}.pricing-card li{padding:.5rem 0;color:#6b7280;font-size:.875rem;border-bottom:1px solid #f3f4f6}.pricing-card li:last-child{border-bottom:none}.cta-section{padding:4rem 2rem;background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white;text-align:center}.cta-section h2{font-size:2rem;margin-bottom:.5rem}.cta-section p{opacity:.9;margin-bottom:1.5rem}.cta-section .primary-button{background-color:white;color:var(--tca-blue)}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.spinner{width:2rem;height:2rem;border:3px solid #e5e7eb;border-top:3px solid var(--tca-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.mobile-menu-toggle{display:block}.nav-menu{display:none;position:absolute;top:100%;left:0;right:0;background:white;flex-direction:column;padding:1rem;border-bottom:1px solid #e5e7eb;gap:1rem}.nav-menu.open{display:flex}.flow-progress{width:100%}.step-list{width:100%;justify-content:space-between}.nav-links{width:100%;flex-direction:column}.nav-link{width:100%;text-align:center}.hero-section h1{font-size:1.75rem}.hero-subtitle{font-size:1rem}.hero-actions{flex-direction:column}.step-label{display:inline}}.dashboard{max-width:1200px;margin:0 auto;padding:2rem}.dashboard h1{font-size:2rem;font-weight:700;color:#111827;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.dashboard-content{display:grid;grid-gap:1.5rem;gap:1.5rem}.dashboard-section{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);border:1px solid #e5e7eb;transition:box-shadow .2s ease}.dashboard-section:hover{box-shadow:0 4px 6px rgba(0,0,0,.1),0 2px 4px rgba(0,0,0,.06)}.dashboard-section h2{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.dashboard-section h2:before{content:"";width:4px;height:1.25rem;background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);border-radius:2px}.user-profile{background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white}.user-profile h2{color:white}.user-profile h2:before{background:rgba(255,255,255,.5)}.profile-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.profile-item{background:rgba(255,255,255,.1);padding:1rem;border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.profile-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin-bottom:.25rem}.profile-value{font-size:1rem;font-weight:500}.verification-status.verified{color:#86efac}.verification-status.unverified{color:#fca5a5}.info-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1rem;gap:1rem}.info-status-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;background:#f9fafb;border:1px solid #e5e7eb;transition:all .2s ease}.info-status-item:hover{background:#f3f4f6}.info-status-item.submitted{background:#f0fdf4;border-color:#bbf7d0}.info-status-item .status-icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1rem;flex-shrink:0}.info-status-item.not-submitted .status-icon{background:#fee2e2;color:#dc2626}.info-status-item.submitted .status-icon{background:#dcfce7;color:#16a34a}.info-status-item .status-text{flex:1 1;font-weight:500;color:#374151}.info-status-item .status-badge{font-size:.75rem;padding:.25rem .75rem;border-radius:9999px;font-weight:500}.info-status-item .status-badge.complete{background:#dcfce7;color:#166534}.info-status-item .status-badge.incomplete{background:#fee2e2;color:#991b1b}.analysis-container{padding:1.5rem;border-radius:8px;background:#f9fafb;border:1px solid #e5e7eb}.analysis-container.status-not_started{background:#f9fafb;border-color:#e5e7eb}.analysis-container.status-pending,.analysis-container.status-processing{background:#eff6ff;border-color:#bfdbfe}.analysis-container.status-completed{background:#f0fdf4;border-color:#bbf7d0}.analysis-container.status-failed{background:#fef2f2;border-color:#fecaca}.analysis-header{margin-bottom:.75rem}.analysis-header .status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600}.status-badge.status-not_started{background:#e5e7eb;color:#374151}.status-description{color:#6b7280;font-size:.875rem;line-height:1.5}.progress-section{margin-top:1rem}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);border-radius:4px;transition:width .3s ease}.progress-text{font-size:.75rem;color:#6b7280}.error-detail-message{margin-top:.75rem;padding:.75rem;background:#fee2e2;border-radius:6px;color:#991b1b;font-size:.875rem}.report-available{justify-content:space-between;padding:1rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:8px;border:1px solid #bbf7d0}.report-available,.report-info{display:flex;align-items:center;gap:1rem}.report-icon{font-size:2rem}.report-details .report-status{font-weight:600;color:#166534;margin-bottom:.25rem}.report-details .report-date{font-size:.75rem;color:#6b7280}.view-report-button{background:linear-gradient(135deg,#16a34a,#22c55e);color:white;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px rgba(22,163,74,.3)}.view-report-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(22,163,74,.4)}.no-certificates,.no-payments,.report-not-available{text-align:center;padding:2rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.no-certificates p:first-child,.no-payments p:first-child,.report-not-available p:first-child{font-weight:500;color:#374151;margin-bottom:.5rem}.hint-text{font-size:.875rem;color:#9ca3af}.certificates-count,.payments-count{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.certificate-items{list-style:none;display:flex;flex-direction:column;gap:.75rem}.certificate-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;transition:all .2s ease}.certificate-item:hover{background:#f3f4f6;border-color:#d1d5db}.certificate-info{display:flex;align-items:center;gap:1rem}.certificate-icon{font-size:1.5rem}.certificate-details{display:flex;flex-direction:column}.certificate-id{font-weight:600;color:#374151;font-family:monospace}.certificate-date{font-size:.75rem;color:#9ca3af}.download-button{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px rgba(10,49,97,.3)}.download-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(10,49,97,.4)}.payments-table{width:100%;border-collapse:collapse;font-size:.875rem}.payments-table th{text-align:left;padding:.75rem 1rem;background:#f9fafb;color:#6b7280;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;border-bottom:2px solid #e5e7eb}.payments-table td{padding:1rem;border-bottom:1px solid #f3f4f6;color:#374151}.payments-table tr:hover td{background:#f9fafb}.payment-status{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.payment-status.status-completed{background:#dcfce7;color:#166534}.payment-status.status-pending{background:#fef3c7;color:#92400e}.payment-status.status-failed{background:#fee2e2;color:#991b1b}.dashboard .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:white;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.dashboard .loading-state .spinner{width:3rem;height:3rem;border-width:4px;margin-bottom:1rem}.dashboard .loading-state p{color:#6b7280;font-size:1rem}.dashboard .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;background:#fef2f2;border-radius:12px;border:1px solid #fecaca;text-align:center}.dashboard .error-state .error-message{color:#991b1b;font-size:1rem;margin-bottom:1rem}.dashboard .load-button,.dashboard .retry-button{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px rgba(10,49,97,.3)}.dashboard .load-button:hover,.dashboard .retry-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(10,49,97,.4)}@media (max-width:768px){.dashboard{padding:1rem}.dashboard h1{font-size:1.5rem}.info-status-grid,.profile-info{grid-template-columns:1fr}.report-available{text-align:center}.certificate-item,.report-available,.report-info{flex-direction:column}.certificate-item{gap:1rem;text-align:center}.certificate-info{flex-direction:column}.payments-table{display:block;overflow-x:auto}}.payment-container{max-width:1100px;margin:0 auto;padding:2rem}.payment-container h1{font-size:2rem;font-weight:700;color:#111827;text-align:center;margin-bottom:.5rem}.page-description{text-align:center;color:#6b7280;max-width:600px;margin:0 auto 2rem;line-height:1.6}.payment-tier-selector{display:flex;flex-direction:column;gap:3rem}.payment-history-section h2,.tier-selection-section h2{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:.5rem;text-align:center}.section-description{text-align:center;color:#6b7280;margin-bottom:1.5rem;font-size:.875rem}.tier-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.5rem}.tier-card{position:relative;background:white;border:2px solid #e5e7eb;border-radius:16px;padding:2rem 1.5rem;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column}.tier-card:hover{border-color:rgba(10,49,97,.5);box-shadow:0 8px 25px rgba(10,49,97,.15);transform:translateY(-4px)}.tier-card.selected{border-color:var(--tca-blue);background:linear-gradient(135deg,rgba(10,49,97,.05),rgba(10,49,97,.1));box-shadow:0 8px 25px rgba(10,49,97,.25)}.tier-card.recommended{border-color:#f59e0b}.tier-card.recommended.selected{border-color:var(--tca-blue)}.recommended-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#f59e0b,#fbbf24);color:white;padding:.35rem 1rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 8px rgba(245,158,11,.4)}.tier-name{font-size:1.25rem;font-weight:700;color:#111827}.tier-name,.tier-price{margin-bottom:.5rem;text-align:center}.tier-price{font-size:2.5rem;font-weight:800;color:var(--tca-blue)}.tier-description{font-size:.875rem;color:#6b7280;text-align:center;margin-bottom:1.5rem;min-height:2.5rem}.tier-features{list-style:none;flex:1 1;margin-bottom:1.5rem}.tier-features li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:#374151;font-size:.875rem;border-bottom:1px solid #f3f4f6}.tier-features li:last-child{border-bottom:none}.tier-features li:before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:700}.select-tier-button{width:100%;padding:.75rem 1.5rem;border:2px solid #e5e7eb;border-radius:8px;background:white;color:#374151;font-weight:600;cursor:pointer;transition:all .2s ease}.select-tier-button:hover{border-color:var(--tca-blue);color:var(--tca-blue)}.select-tier-button.selected{border-color:var(--tca-blue)}.checkout-button,.select-tier-button.selected{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white}.checkout-button{display:block;width:100%;max-width:400px;margin:0 auto;padding:1rem 2rem;border:none;border-radius:12px;font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(10,49,97,.4)}.checkout-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(10,49,97,.5)}.checkout-button:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed}.payment-history-section{background:white;border-radius:16px;padding:2rem;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.load-history-button{display:block;margin:0 auto;padding:.75rem 1.5rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#374151;font-weight:500;cursor:pointer;transition:all .2s ease}.load-history-button:hover{background:#e5e7eb}.loading-message,.no-history-message{text-align:center;color:#6b7280;padding:2rem}.payment-history-table{width:100%;border-collapse:collapse;margin-top:1rem}.payment-history-table th{text-align:left;padding:.75rem 1rem;background:#f9fafb;color:#6b7280;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;border-bottom:2px solid #e5e7eb}.payment-history-table td{padding:1rem;border-bottom:1px solid #f3f4f6;color:#374151}.payment-history-table tr:hover td{background:#f9fafb}.status-badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.status-completed{background:#dcfce7;color:#166534}.status-badge.status-pending{background:#fef3c7;color:#92400e}.status-badge.status-failed{background:#fee2e2;color:#991b1b}.analysis-container{max-width:900px;margin:0 auto}.analysis-container h1{font-size:2rem;font-weight:700;color:#111827;margin-bottom:.5rem}.analysis-status-section,.heritage-report-section{background:white;border-radius:16px;padding:2rem;margin-bottom:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.analysis-status-section h2,.heritage-report-section h2{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.analysis-status-section h2:before,.heritage-report-section h2:before{content:"";width:4px;height:1.25rem;background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);border-radius:2px}.heritage-report{padding:1rem 0}.heritage-breakdown{display:flex;flex-direction:column;gap:1rem}.heritage-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.heritage-region{flex:1 1;font-weight:600;color:#374151}.heritage-percentage{font-size:1.25rem;font-weight:700;color:var(--tca-blue);min-width:60px;text-align:right}.heritage-bar{flex:2 1;height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden}.heritage-bar-fill{height:100%;background:linear-gradient(90deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);border-radius:6px;transition:width .5s ease}.certificates-page{max-width:900px;margin:0 auto}.certificates-page .page-header{text-align:center;margin-bottom:2rem}.certificates-page .page-header h1{font-size:2rem;font-weight:700;color:#111827;margin-bottom:.5rem}.certificates-page .page-header p{color:#6b7280}.generate-section,.history-section,.new-certificate-section{background:white;border-radius:16px;padding:2rem;margin-bottom:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-size:1.25rem;font-weight:600;color:#374151}.dismiss-button{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:none;border-radius:50%;font-size:1.25rem;color:#6b7280;cursor:pointer;transition:all .2s ease}.dismiss-button:hover{background:#e5e7eb;color:#374151}.generate-section h2,.history-section h2{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:1rem}.checking-message{text-align:center;color:#6b7280;padding:2rem}.no-report-message{text-align:center;padding:2rem;background:#f9fafb;border-radius:12px;border:2px dashed #e5e7eb}.no-report-message p:first-child{font-weight:600;color:#374151;margin-bottom:.5rem}.no-report-message p:last-child{color:#6b7280;font-size:.875rem}.upgrade-message{text-align:center;padding:2rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:12px;border:2px solid #f59e0b}.upgrade-message p:first-child{font-weight:600;color:#92400e;margin-bottom:.5rem}.upgrade-message p:nth-child(2){color:#78350f;font-size:.875rem;margin-bottom:1.5rem}.upgrade-button{background:linear-gradient(135deg,#f59e0b,#fbbf24);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(245,158,11,.4)}.upgrade-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(245,158,11,.5)}.generate-form{text-align:center}.generate-form p{color:#6b7280;margin-bottom:1.5rem;max-width:500px;margin-left:auto;margin-right:auto}.generate-button{padding:1rem 2rem;background:linear-gradient(135deg,#16a34a,#22c55e);color:white;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(22,163,74,.4)}.generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(22,163,74,.5)}.generate-button:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed}.certificate-preview{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #bbf7d0;border-radius:16px;padding:2rem;text-align:center}.certificate-preview .certificate-icon{font-size:3rem;margin-bottom:1rem}.certificate-preview .certificate-title{font-size:1.5rem;font-weight:700;color:#166534;margin-bottom:.5rem}.certificate-preview .certificate-id{font-family:monospace;font-size:1rem;color:#374151;background:white;padding:.5rem 1rem;border-radius:8px;display:inline-block;margin-bottom:1rem}.certificate-preview .certificate-name{font-size:1.25rem;font-weight:600;color:#111827;margin-bottom:1.5rem}.certificate-preview .download-button{padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(10,49,97,.3)}.certificate-preview .download-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(10,49,97,.4)}.certificate-history{padding:1rem 0}.certificate-list{display:flex;flex-direction:column;gap:1rem}.certificate-history-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb;transition:all .2s ease}.certificate-history-item:hover{background:#f3f4f6;border-color:#d1d5db}.certificate-history-item .cert-info{display:flex;align-items:center;gap:1rem}.certificate-history-item .cert-icon{font-size:1.5rem}.certificate-history-item .cert-details{display:flex;flex-direction:column}.certificate-history-item .cert-id{font-family:monospace;font-weight:600;color:#374151}.certificate-history-item .cert-date{font-size:.75rem;color:#9ca3af}.form-container{max-width:600px;background:white;border-radius:16px;padding:2.5rem;box-shadow:0 4px 6px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.form-container h1{font-size:1.75rem;font-weight:700;color:#111827;margin-bottom:.5rem;text-align:center}.form-description{text-align:center;color:#6b7280;margin-bottom:2rem;line-height:1.6}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;transition:all .2s ease;background:#f9fafb}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--tca-blue);background:white;box-shadow:0 0 0 4px rgba(10,49,97,.1)}.form-group input.input-error{border-color:#dc2626;background:#fef2f2}.form-group input.input-error:focus{box-shadow:0 0 0 4px rgba(220,38,38,.1)}.submit-button{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);padding:1rem 1.5rem;border-radius:10px;font-size:1rem;font-weight:600;box-shadow:0 4px 15px rgba(10,49,97,.3);transition:all .3s ease}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(10,49,97,.4)}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:10px;font-size:.875rem;margin:1rem 0}@media (max-width:768px){.analysis-container,.certificates-page,.payment-container{padding:1rem}.analysis-container h1,.certificates-page .page-header h1,.payment-container h1{font-size:1.5rem}.tier-cards{grid-template-columns:1fr}.tier-card{padding:1.5rem}.tier-price{font-size:2rem}.heritage-item{flex-direction:column;align-items:flex-start;gap:.5rem}.heritage-bar{width:100%}.heritage-percentage{text-align:left}.certificate-history-item{flex-direction:column;gap:1rem;text-align:center}.certificate-history-item .cert-info{flex-direction:column}.payment-history-table{display:block;overflow-x:auto}}.payment-result-container{max-width:600px;margin:0 auto;padding:2rem}.payment-cancelled,.payment-error,.payment-success{background:white;border-radius:16px;padding:3rem 2rem;text-align:center;box-shadow:0 4px 6px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.payment-success{border-top:4px solid #16a34a}.payment-error{border-top:4px solid #dc2626}.payment-cancelled{border-top:4px solid #f59e0b}.payment-success .success-icon{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a}.payment-cancelled .cancel-icon,.payment-error .error-icon,.payment-success .success-icon{width:80px;height:80px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:2.5rem;font-weight:700}.payment-error .error-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626}.payment-cancelled .cancel-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#f59e0b}.payment-cancelled h1,.payment-error h1,.payment-success h1{font-size:1.75rem;font-weight:700;color:#111827;margin-bottom:.75rem}.cancel-message,.error-message,.success-message{color:#6b7280;font-size:1rem;line-height:1.6;margin-bottom:2rem}.payment-details{background:#f9fafb;border-radius:12px;padding:1.5rem;margin-bottom:2rem;text-align:left}.payment-details h2{font-size:1rem;font-weight:600;color:#374151;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.details-list{display:grid;grid-template-columns:auto 1fr;grid-gap:.75rem 1rem;gap:.75rem 1rem}.details-list dt{font-size:.875rem;color:#6b7280;font-weight:500}.details-list dd{font-size:.875rem;color:#111827;font-weight:600;text-align:right}.details-list .session-id{font-family:monospace;font-size:.75rem;color:#6b7280}.next-steps{background:linear-gradient(135deg,rgba(10,49,97,.08),rgba(10,49,97,.15));border-radius:12px;padding:1.5rem;margin-bottom:2rem;text-align:left}.next-steps h2{font-size:1rem;font-weight:600;color:var(--tca-blue);margin-bottom:1rem}.next-steps ul{list-style:none;padding:0;margin:0}.next-steps li{position:relative;padding-left:1.5rem;margin-bottom:.75rem;font-size:.875rem;color:#374151;line-height:1.5}.next-steps li:last-child{margin-bottom:0}.next-steps li:before{content:"→";position:absolute;left:0;color:var(--tca-blue);font-weight:700}.action-buttons{display:flex;flex-direction:column;gap:1rem}.payment-cancelled .action-buttons .primary-button,.payment-cancelled .action-buttons .secondary-button,.payment-error .action-buttons .primary-button,.payment-error .action-buttons .secondary-button,.payment-success .action-buttons .primary-button,.payment-success .action-buttons .secondary-button{display:block;padding:1rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;text-align:center;text-decoration:none;transition:all .2s ease;border:none}.payment-cancelled .action-buttons .primary-button,.payment-error .action-buttons .primary-button,.payment-success .action-buttons .primary-button{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);background-color:var(--tca-blue);color:white;box-shadow:0 4px 15px rgba(10,49,97,.3)}.payment-cancelled .action-buttons .primary-button:hover,.payment-error .action-buttons .primary-button:hover,.payment-success .action-buttons .primary-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(10,49,97,.4)}.payment-cancelled .action-buttons .secondary-button,.payment-error .action-buttons .secondary-button,.payment-success .action-buttons .secondary-button{background:white;background-color:white;color:#374151;border:2px solid #e5e7eb}.payment-cancelled .action-buttons .secondary-button:hover,.payment-error .action-buttons .secondary-button:hover,.payment-success .action-buttons .secondary-button:hover{background:#f9fafb;background-color:#f9fafb;border-color:#d1d5db}.action-link{display:inline-block;margin-top:1.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white;border-radius:8px;font-weight:600;text-decoration:none;transition:all .2s ease}.action-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(10,49,97,.3)}.payment-result-container .loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:white;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.05)}.payment-result-container .loading-spinner:before{content:"";width:3rem;height:3rem;border:4px solid #e5e7eb;border-top:4px solid var(--tca-blue);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.payment-result-container .loading-spinner p{color:#6b7280;font-size:1rem}@media (max-width:768px){.payment-result-container{padding:1rem}.payment-cancelled,.payment-error,.payment-success{padding:2rem 1.5rem}.payment-cancelled h1,.payment-error h1,.payment-success h1{font-size:1.5rem}.details-list{grid-template-columns:1fr;gap:.5rem}.details-list dd{text-align:left;margin-bottom:.5rem}}.cancel-info,.help-section{background:#f9fafb;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;text-align:left}.cancel-info h2,.help-section h2{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.75rem}.cancel-info p,.help-section p{font-size:.875rem;color:#6b7280;line-height:1.6;margin:0}.info-status-item.clickable{display:flex;align-items:center;position:relative}.info-status-item.clickable:hover{border-color:rgba(10,49,97,.4);transform:translateY(-2px);box-shadow:0 4px 12px rgba(10,49,97,.15)}.info-status-item.clickable.submitted:hover{background:#ecfdf5;border-color:#86efac}.action-hint{font-size:.75rem;font-weight:600;color:var(--tca-blue);margin-left:auto;opacity:0;transition:opacity .2s ease}.clickable:hover .action-hint{opacity:1}.clickable.submitted:hover .action-hint{color:#16a34a}.analysis-container.clickable{cursor:pointer;text-decoration:none;display:block;transition:all .2s ease}.analysis-container.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.analysis-container.clickable .analysis-header,.report-available.clickable,.report-not-available.clickable{display:flex;align-items:center;justify-content:space-between}.report-available.clickable,.report-not-available.clickable{cursor:pointer;text-decoration:none;transition:all .2s ease}.report-available.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(22,163,74,.2)}.report-not-available.clickable{flex-direction:column;text-align:center}.report-not-available.clickable:hover{background:rgba(10,49,97,.08);border-color:rgba(10,49,97,.4)}.no-certificates.clickable,.no-payments.clickable{cursor:pointer;text-decoration:none;display:flex;flex-direction:column;align-items:center;transition:all .2s ease}.no-certificates.clickable:hover,.no-payments.clickable:hover{background:rgba(10,49,97,.08);border-color:rgba(10,49,97,.4)}.view-all-link{font-size:.875rem;font-weight:600;color:var(--tca-blue);text-decoration:none;transition:color .2s ease}.view-all-link:hover{color:var(--tca-navy);text-decoration:underline}.certificates-header,.payments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.certificates-header .certificates-count,.payments-header .payments-count{margin-bottom:0}@media (max-width:768px){.info-status-item.clickable{flex-wrap:wrap;gap:.5rem}.action-hint{width:100%;text-align:center;opacity:1;margin-top:.5rem;margin-left:0}.analysis-container.clickable .analysis-header{flex-wrap:wrap;gap:.5rem}.report-available.clickable{flex-direction:column;text-align:center;gap:1rem}}.admin-dashboard{max-width:1400px;margin:0 auto;padding:2rem}.admin-dashboard h1{font-size:2rem;font-weight:700;color:#111827;margin-bottom:1.5rem}.admin-error-container{text-align:center;padding:4rem 2rem}.admin-error{color:#dc2626;background:#fef2f2;padding:1rem;border-radius:8px;border:1px solid #fecaca}.admin-loading{text-align:center;padding:3rem;color:#6b7280}.admin-tabs{display:flex;gap:.5rem;border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem;overflow-x:auto}.admin-tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;font-size:.875rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s ease;white-space:nowrap}.admin-tab:hover{color:#374151;background:#f9fafb}.admin-tab.active{color:var(--tca-blue);border-bottom-color:var(--tca-blue)}.admin-content{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.admin-tab-content{min-height:400px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.admin-stat-card{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;text-align:center;transition:all .2s ease}.admin-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.stat-value{font-size:2rem;font-weight:700;color:var(--tca-blue)}.stat-label{font-size:.875rem;font-weight:500;color:#374151}.stat-sub{font-size:.75rem;color:#6b7280;margin-top:.25rem}.admin-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.admin-search-input{flex:1 1;min-width:200px;padding:.625rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;transition:all .2s ease}.admin-search-input:focus{outline:none;border-color:var(--tca-blue);box-shadow:0 0 0 3px rgba(10,49,97,.1)}.admin-filter-select{padding:.625rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;background:white;cursor:pointer;min-width:150px}.admin-filter-select:focus{outline:none;border-color:var(--tca-blue)}.admin-btn{padding:.625rem 1.25rem;background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);color:white;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.admin-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(10,49,97,.3)}.admin-table-container{overflow-x:auto;margin-bottom:1rem}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th{text-align:left;padding:.75rem 1rem;background:#f9fafb;color:#6b7280;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;white-space:nowrap}.admin-table td{padding:.75rem 1rem;border-bottom:1px solid #f3f4f6;color:#374151}.admin-table tr:hover td{background:#f9fafb}.admin-table .mono{font-family:monospace;font-size:.8rem}.admin-table .error-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dc2626;font-size:.75rem}.admin-action-select{padding:.375rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.75rem;background:white;cursor:pointer}.admin-action-select:disabled{opacity:.5;cursor:not-allowed}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.pagination-btn{padding:.5rem 1rem;background:white;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{font-size:.875rem;color:#6b7280}.admin-table .status-badge{display:inline-flex;padding:.25rem .625rem;border-radius:9999px;font-size:.7rem;font-weight:600;text-transform:capitalize}.status-badge.status-processing{background:rgba(10,49,97,.15);color:var(--tca-blue)}.status-badge.status-refunded{background:#e0e7ff;color:#3730a3}@media (max-width:768px){.admin-dashboard{padding:1rem}.admin-dashboard h1{font-size:1.5rem}.admin-tabs{gap:.25rem}.admin-tab{padding:.5rem 1rem;font-size:.8rem}.admin-filters{flex-direction:column}.admin-filter-select,.admin-search-input{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-stat-card{padding:1rem}.stat-value{font-size:1.5rem}}.info-status-item.clickable{cursor:pointer;text-decoration:none}.info-status-item.clickable:hover{background:rgba(10,49,97,.08);border-color:rgba(10,49,97,.35)}.info-status-item .action-hint{font-size:.75rem;color:var(--tca-blue);font-weight:500;margin-left:auto}.email-config-status{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem}.email-config-status h3{font-size:1rem;font-weight:600;color:#111827;margin-bottom:.75rem}.email-config-status.configured{background:#f0fdf4;border-color:#bbf7d0}.email-config-status.not-configured{background:#fffbeb;border-color:#fde68a}.config-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem;color:#6b7280;margin-bottom:1rem}.config-details span{display:flex;align-items:center;gap:.25rem}.test-email-form{display:flex;gap:.5rem;margin-top:.75rem}.test-email-form input{flex:1 1;max-width:300px}.admin-message{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.admin-message.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.admin-message.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.admin-btn-small{padding:.25rem .5rem;font-size:.75rem;background:var(--tca-blue);color:white;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.admin-btn-small:hover{background:var(--tca-navy)}.admin-btn-small:disabled{background:#9ca3af;cursor:not-allowed}.admin-btn-retry{background:#f59e0b}.admin-btn-retry:hover{background:#d97706}.admin-btn-regenerate{background:#10b981}.admin-btn-regenerate:hover{background:#059669}.admin-actions-cell{display:flex;gap:.5rem;flex-wrap:wrap}.subject-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.test-email-form{flex-direction:column}.test-email-form input{max-width:100%}.config-details{flex-direction:column;gap:.5rem}}.family-tree-visualization{background:white;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem}.family-tree-visualization h2{font-size:1.25rem;font-weight:600;color:#111827;margin-bottom:1rem}.family-tree-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.family-tree-date{color:#6b7280;font-size:.875rem}.family-tree-diagram{display:flex;flex-direction:column;align-items:center;gap:.5rem}.family-tree-generation{width:100%;text-align:center}.generation-label{font-size:.75rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.generation-content{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.family-side{display:flex;flex-direction:column;align-items:center;gap:.5rem}.side-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.side-nodes{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.parents-row{display:flex;align-items:center;gap:1rem}.horizontal-connector{width:40px;height:2px;background-color:#d1d5db}.tree-connector{width:2px;height:24px;background-color:#d1d5db}.family-tree-node{background:linear-gradient(135deg,#ffffff,#f9fafb);border:2px solid #e5e7eb;border-radius:8px;padding:1rem 1.25rem;min-width:160px;max-width:200px;text-align:center;transition:transform .2s,box-shadow .2s}.family-tree-node:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.family-tree-node-user{border-color:var(--tca-blue);background:linear-gradient(135deg,rgba(10,49,97,.08),rgba(10,49,97,.15))}.family-tree-node-unknown{border-style:dashed;opacity:.7}.family-tree-node-relationship{font-size:.7rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.family-tree-node-name{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.family-tree-node-birthplace{font-size:.8rem;color:#4b5563;margin-bottom:.25rem}.family-tree-node-ethnicity{font-size:.75rem;color:#6b7280;font-style:italic}.family-tree-premium-prompt{text-align:center;padding:2rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;border:2px solid #f59e0b}.premium-icon{font-size:3rem;margin-bottom:1rem}.family-tree-premium-prompt h3{font-size:1.25rem;font-weight:600;color:#92400e;margin-bottom:.75rem}.family-tree-premium-prompt p{color:#78350f;margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.upgrade-button{display:inline-block;background-color:#f59e0b;color:white;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;text-decoration:none;transition:background-color .2s}.upgrade-button:hover{background-color:#d97706}.load-tree-button{background-color:var(--tca-blue);color:white;padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.load-tree-button:hover{background-color:var(--tca-navy)}@media (max-width:768px){.family-tree-header{text-align:center}.family-tree-header,.generation-content{flex-direction:column;gap:1rem}.family-side{width:100%}.side-nodes{align-items:center}.parents-row,.side-nodes{flex-direction:column}.horizontal-connector{width:2px;height:24px}.family-tree-node{min-width:140px;max-width:100%}}.premium-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:white;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.premium-badge:before{content:"👑";font-size:.875rem}.premium-features-section{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.premium-features-section h3{color:#92400e;font-size:1.125rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.premium-features-list{list-style:none;padding:0;margin:0}.premium-features-list li{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;color:#78350f}.premium-features-list li:before{content:"✓";color:#059669;font-weight:700}.premium-feature-link{color:var(--tca-blue);text-decoration:underline;cursor:pointer}.premium-feature-link:hover{color:var(--tca-navy)}.premium-status-banner{display:flex;justify-content:flex-end;margin-bottom:1rem}.landing-main{--radius:12px;--radius-lg:20px;--shadow:0 4px 20px rgba(0,0,0,0.08);--shadow-lg:0 12px 40px rgba(0,0,0,0.12);--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.text-gradient{background:linear-gradient(135deg,var(--tca-gold) 0,#fbbf24 50%,var(--tca-gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tag{display:inline-block;background:rgba(10,49,97,.1);color:var(--tca-blue);padding:.5rem 1rem;border-radius:50px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}.section-header{text-align:center;max-width:600px;margin:0 auto 4rem}.section-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--ink);line-height:1.2;margin-bottom:1rem}.section-desc{font-size:1.125rem;color:var(--muted);line-height:1.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:var(--radius);font-weight:600;font-size:1rem;cursor:pointer;transition:var(--transition);border:2px solid transparent;text-decoration:none}.btn-lg{padding:1rem 2rem;font-size:1.0625rem}.btn-xl{padding:1.25rem 2.5rem;font-size:1.125rem}.btn-block{width:100%}.btn-primary{background:var(--tca-blue);color:white;border-color:var(--tca-blue)}.btn-primary:hover{background:var(--tca-navy);border-color:var(--tca-navy);transform:translateY(-2px);box-shadow:0 8px 25px rgba(10,49,97,.3)}.btn-ghost{background:rgba(255,255,255,.1);color:white;border-color:rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-ghost:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5)}.btn-outline{background:transparent;color:var(--tca-blue);border-color:var(--tca-blue)}.btn-outline:hover{background:var(--tca-blue);color:white}.btn-white{background:white;color:var(--tca-blue);border-color:white}.btn-white:hover{background:var(--tca-gold);transform:translateY(-2px);box-shadow:0 8px 30px rgba(242,183,5,.4)}.btn-gold,.btn-white:hover{border-color:var(--tca-gold);color:var(--ink)}.btn-gold{background:linear-gradient(135deg,var(--tca-gold) 0,#fbbf24 100%)}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(242,183,5,.4)}.btn-arrow{transition:transform .2s}.btn:hover .btn-arrow{transform:translateX(4px)}.btn-icon{font-size:1.25rem}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 1.5rem 4rem;overflow:hidden;background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 50%,#1a4a7a 100%);color:white}.hero-bg{pointer-events:none;overflow:hidden}.hero-bg,.hero-gradient{position:absolute;inset:0}.hero-gradient{background:radial-gradient(ellipse at 30% 20%,rgba(242,183,5,.15) 0,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(179,25,66,.1) 0,transparent 50%)}.hero-stars{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 10% 10%,rgba(255,255,255,.4),transparent),radial-gradient(2px 2px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 40% 20%,rgba(255,255,255,.5),transparent),radial-gradient(2px 2px at 60% 40%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 80% 10%,rgba(255,255,255,.4),transparent),radial-gradient(2px 2px at 90% 50%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 30% 60%,rgba(255,255,255,.4),transparent),radial-gradient(2px 2px at 70% 70%,rgba(255,255,255,.3),transparent);animation:twinkle 4s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.6}50%{opacity:1}}.hero-glow{position:absolute;top:-50%;left:50%;transform:translateX(-50%);width:150%;height:100%;background:radial-gradient(ellipse,rgba(242,183,5,.08) 0,transparent 70%)}.hero-container{position:relative;text-align:center;max-width:800px}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.625rem 1.25rem;border-radius:50px;margin-bottom:2rem;border:1px solid rgba(255,255,255,.15)}.badge-flag{font-size:1.25rem}.badge-text{font-size:.875rem;font-weight:500;letter-spacing:.02em}.hero-title{font-size:clamp(2.5rem,7vw,4.5rem);font-weight:800;line-height:1.1;margin-bottom:1.5rem;letter-spacing:-.02em}.hero-highlight{display:block;background:linear-gradient(135deg,var(--tca-gold) 0,#fbbf24 50%,#f59e0b 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-desc{font-size:clamp(1rem,2.5vw,1.25rem);opacity:.9;line-height:1.7;margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto}.hero-actions{gap:1rem;flex-wrap:wrap;margin-bottom:4rem}.hero-actions,.hero-stats{display:flex;justify-content:center}.hero-stats{gap:3rem;padding-top:3rem;border-top:1px solid rgba(255,255,255,.15)}.stat-item{text-align:center}.stat-value{display:block;font-size:1.75rem;font-weight:800;margin-bottom:.25rem}.stat-label{font-size:.8125rem;opacity:.7}.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.6;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.scroll-indicator{width:24px;height:40px;border:2px solid rgba(255,255,255,.5);border-radius:12px;position:relative}.scroll-indicator:after{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:4px;height:8px;background:white;border-radius:2px;animation:scroll-bounce 1.5s ease-in-out infinite}@keyframes scroll-bounce{0%,to{transform:translateX(-50%) translateY(0);opacity:1}50%{transform:translateX(-50%) translateY(10px);opacity:.3}}.legacy{padding:6rem 0;background:var(--paper)}.legacy-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:4rem;gap:4rem;align-items:center}.legacy-content .tag{background:linear-gradient(135deg,rgba(10,49,97,.08),rgba(10,49,97,.15))}.legacy-content .section-title{margin-bottom:1.5rem}.legacy-content .section-desc{margin-bottom:2rem}.quote-block{background:white;padding:1.5rem 2rem;border-radius:var(--radius);border-left:4px solid var(--tca-gold);box-shadow:var(--shadow)}.quote-block p{font-size:1.125rem;font-style:italic;color:var(--ink);line-height:1.7;margin-bottom:.75rem}.quote-block cite{font-size:.875rem;color:var(--muted);font-style:normal}.legacy-cards{display:flex;flex-direction:column;gap:1.25rem}.card-legacy{background:white;padding:1.75rem;border-radius:var(--radius);box-shadow:var(--shadow);transition:var(--transition)}.card-legacy:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-legacy .card-icon{font-size:2rem;display:block;margin-bottom:.75rem}.card-legacy h3{font-size:1.125rem;font-weight:700;color:var(--ink);margin-bottom:.5rem}.card-legacy p{font-size:.9375rem;color:var(--muted);line-height:1.6}.process{padding:6rem 0;background:white}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2rem;gap:2rem}.step-card{position:relative;background:var(--paper);padding:2rem 1.5rem;border-radius:var(--radius-lg);text-align:center;transition:var(--transition)}.step-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.step-num{position:absolute;top:-1rem;left:50%;transform:translateX(-50%);background:var(--tca-blue);color:white;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.875rem}.step-icon{font-size:2.5rem;margin:1rem 0}.step-card h3{font-size:1.125rem;font-weight:700;color:var(--ink);margin-bottom:.75rem}.step-card p{font-size:.875rem;color:var(--muted);line-height:1.6}.features{padding:6rem 0;background:linear-gradient(180deg,#f8fafc,white)}.features-grid{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:2rem;gap:2rem}.feature-main{background:white;padding:2.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.feature-badge{display:inline-block;background:linear-gradient(135deg,var(--tca-gold) 0,#fbbf24 100%);padding:.375rem .875rem;border-radius:6px;font-size:.75rem;margin-bottom:1rem}.feature-badge,.feature-main h3{color:var(--ink);font-weight:700}.feature-main h3{font-size:1.5rem;margin-bottom:.75rem}.feature-main>p{color:var(--muted);margin-bottom:1.5rem;line-height:1.6}.feature-list{list-style:none;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.feature-list li{display:flex;align-items:center;gap:.5rem;background:rgba(10,49,97,.06);padding:.5rem 1rem;border-radius:6px;font-size:.875rem;color:var(--tca-blue);font-weight:500}.feature-list .check{color:#16a34a;font-weight:700}.tree-demo{background:linear-gradient(135deg,rgba(10,49,97,.05),rgba(10,49,97,.1));border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.tree-node{background:var(--tca-blue);color:white;padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600}.tree-node.you{background:linear-gradient(135deg,var(--tca-blue) 0,var(--tca-blue-light) 100%);padding:.75rem 1.5rem;font-size:1rem}.tree-node.sm{padding:.375rem .625rem;font-size:.75rem}.tree-line{width:2px;height:20px;background:var(--tca-blue)}.tree-row{display:flex;gap:.75rem}.feature-side{display:flex;flex-direction:column;gap:1.5rem}.feature-card{background:white;padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:var(--transition);flex:1 1}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.feature-icon{font-size:2.5rem;display:block;margin-bottom:1rem}.feature-card h4{font-size:1.125rem;font-weight:700;color:var(--ink);margin-bottom:.5rem}.feature-card p{font-size:.9375rem;color:var(--muted);line-height:1.6}.pricing{padding:6rem 0;background:var(--paper)}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2rem;gap:2rem;align-items:start}.price-card{position:relative;background:white;padding:2.5rem 2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center;transition:var(--transition)}.price-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.price-card.featured{border:3px solid var(--tca-blue);transform:scale(1.05);z-index:1}.price-card.featured:hover{transform:scale(1.05) translateY(-8px)}.price-card.premium{background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white}.price-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--tca-blue);color:white;padding:.5rem 1.25rem;border-radius:50px;font-size:.75rem;font-weight:700;white-space:nowrap}.price-card.premium .price-badge{background:linear-gradient(135deg,var(--tca-gold) 0,#fbbf24 100%);color:var(--ink)}.price-tier{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.5rem}.price-card.premium .price-tier{color:rgba(255,255,255,.7)}.price-name{font-size:1.25rem;font-weight:700;color:var(--ink);margin-bottom:1rem}.price-card.premium .price-name{color:white}.price-amount{display:flex;align-items:flex-start;justify-content:center;margin-bottom:.5rem}.price-amount .currency{font-size:1.5rem;font-weight:700;margin-top:.5rem}.price-amount .amount{font-size:3.5rem;font-weight:800;line-height:1}.price-desc{font-size:.875rem;color:var(--muted);margin-bottom:1.5rem}.price-card.premium .price-desc{color:rgba(255,255,255,.8)}.price-features{list-style:none;text-align:left;margin-bottom:2rem}.price-features li{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,.06);font-size:.875rem}.price-card.premium .price-features li{border-bottom-color:rgba(255,255,255,.1)}.price-features li:last-child{border-bottom:none}.price-features li.disabled{color:var(--muted);opacity:.5}.price-features .check{color:#16a34a;font-weight:700}.price-features .x{color:#dc2626;font-weight:700}.price-card.premium .price-features .check{color:#86efac}.testimonials{padding:6rem 0;background:white}.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2rem;gap:2rem}.testimonial-card{background:var(--paper);padding:2rem;border-radius:var(--radius-lg);transition:var(--transition)}.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.testimonial-card.featured{background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white}.testimonial-card .stars{color:var(--tca-gold);font-size:1.25rem;letter-spacing:.1em;margin-bottom:1rem}.testimonial-card p{font-size:.9375rem;line-height:1.7;margin-bottom:1.5rem}.testimonial-card.featured p{color:rgba(255,255,255,.9)}.testimonial-card .author{display:flex;align-items:center;gap:1rem}.testimonial-card .avatar{width:48px;height:48px;background:var(--tca-blue);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.testimonial-card.featured .avatar{background:rgba(255,255,255,.2)}.testimonial-card .author-info{display:flex;flex-direction:column}.testimonial-card .name{font-weight:700;font-size:.9375rem}.testimonial-card .location{font-size:.8125rem;color:var(--muted)}.testimonial-card.featured .location{color:rgba(255,255,255,.7)}.cta-final{position:relative;padding:8rem 0;background:linear-gradient(135deg,var(--tca-navy) 0,var(--tca-blue) 100%);color:white;text-align:center;overflow:hidden}.cta-bg{position:absolute;inset:0;pointer-events:none}.cta-glow{position:absolute;width:600px;height:600px;border-radius:50%;filter:blur(100px);opacity:.3}.cta-glow.left{background:var(--tca-gold);top:-200px;left:-200px}.cta-glow.right{background:var(--tca-red);bottom:-200px;right:-200px}.cta-content{position:relative;max-width:700px;margin:0 auto}.cta-final h2{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:1rem}.cta-final>.container>.cta-content>p{font-size:1.125rem;opacity:.9;line-height:1.7;margin-bottom:2.5rem}.cta-guarantee{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;font-size:.875rem;opacity:.8}.cta-guarantee .shield{font-size:1rem}.footer{background:var(--ink);color:white;padding:3rem 0 2rem}.footer-inner{justify-content:space-between;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:2rem}.footer-brand,.footer-inner{display:flex;align-items:center}.footer-brand{gap:1rem}.footer-logo{border-radius:8px}.brand-text{display:flex;flex-direction:column}.brand-name{font-size:1.125rem;font-weight:700}.brand-tagline{font-size:.8125rem;opacity:.6}.footer-links{display:flex;gap:2rem}.footer-links a{font-size:.9375rem;opacity:.8;transition:opacity .2s}.footer-links a:hover{opacity:1}.footer-bottom{text-align:center}.footer-bottom p{font-size:.8125rem;opacity:.5}@media (max-width:1024px){.legacy-grid{grid-template-columns:1fr;gap:3rem}.process-grid{grid-template-columns:repeat(2,1fr)}.features-grid{grid-template-columns:1fr}.feature-side{flex-direction:row}.pricing-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.price-card.featured{transform:none}.price-card.featured:hover{transform:translateY(-8px)}.testimonials-grid{grid-template-columns:1fr;max-width:500px;margin:0 auto}}@media (max-width:768px){.hero{padding:5rem 1rem 3rem;min-height:auto}.hero-stats{flex-direction:column;gap:1.5rem}.hero-scroll{display:none}.hero-actions{flex-direction:column;align-items:center}.hero-actions .btn{width:100%;max-width:280px}.features,.legacy,.pricing,.process,.testimonials{padding:4rem 0}.process-grid{grid-template-columns:1fr;max-width:350px;margin:0 auto}.feature-side{flex-direction:column}.cta-final{padding:5rem 0}.footer-inner{gap:2rem;text-align:center}.footer-brand,.footer-inner{flex-direction:column}}@media (max-width:480px){.section-header{margin-bottom:2.5rem}.price-card{padding:2rem 1.5rem}.feature-main{padding:1.75rem}.tree-demo{padding:1.5rem}}