:root{--color-bg: #f7f9fb;--color-surface: #ffffff;--color-surface-soft: #eef3f6;--color-text: #0e1a2b;--color-text-soft: #475569;--color-text-muted: #64748b;--color-primary: #0e7490;--color-primary-hover: #0c5e75;--color-primary-soft: #ecfeff;--color-primary-ink: #ffffff;--color-accent: #f59e0b;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -12px rgba(15, 23, 42, .18);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--content-max: 1080px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:1.2;color:var(--color-text)}p{margin:0;color:var(--color-text-soft)}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.landing-page{display:flex;flex-direction:column;max-width:var(--content-max);margin:0 auto;padding:0 24px}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:24px 0}.landing-brand-name{font-weight:700;font-size:1.125rem;letter-spacing:-.01em;color:var(--color-text)}.landing-nav-link{text-decoration:none;font-weight:500;color:var(--color-text);padding:8px 14px;border-radius:var(--radius-sm);transition:background-color .12s ease}.landing-nav-link:hover{background:var(--color-surface-soft)}.landing-hero{position:relative;padding:80px 0 48px;max-width:760px}.landing-hero:before{content:"";position:absolute;top:40px;left:-40px;width:220px;height:220px;background:radial-gradient(closest-side,rgba(14,116,144,.12),transparent);z-index:-1;pointer-events:none}.landing-hero-title{font-size:clamp(2rem,5vw,3.25rem);font-weight:700;letter-spacing:-.025em;color:var(--color-text)}.landing-hero-subtitle{margin-top:20px;font-size:1.125rem;color:var(--color-text-soft);max-width:620px}.landing-hero-description{margin-top:16px;font-size:1rem;color:var(--color-text-soft);max-width:620px}.landing-cta-group{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.landing-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:var(--radius-md);text-decoration:none;font-weight:600;font-size:1rem;line-height:1;border:1px solid transparent;transition:background-color .12s ease,color .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease}.landing-cta-primary{background:var(--color-primary);color:var(--color-primary-ink);box-shadow:var(--shadow-md)}.landing-cta-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.landing-cta-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border)}.landing-cta-secondary:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.landing-features h2,.landing-how-it-works h2,.landing-trust h2{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin-bottom:24px}.landing-features{padding:56px 0}.landing-feature-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.landing-feature-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.landing-feature-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.landing-feature-title{font-size:1.0625rem;font-weight:600;margin-bottom:8px;color:var(--color-text)}.landing-feature-description{font-size:.9375rem;color:var(--color-text-soft)}.landing-how-it-works{padding:56px 0}.landing-steps{counter-reset:step;list-style:none;padding:0;margin:0;display:grid;gap:12px}.landing-step{counter-increment:step;position:relative;padding:18px 20px 18px 64px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;color:var(--color-text)}.landing-step:before{content:counter(step);position:absolute;left:20px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-primary-ink);border-radius:50%;font-weight:600;font-size:.875rem}.landing-trust{padding:56px 0;display:grid;gap:12px}.landing-trust p{font-size:.9375rem;color:var(--color-text-soft);max-width:760px}.landing-footer{display:grid;gap:20px;padding:48px 0 32px;margin-top:16px;border-top:1px solid var(--color-border)}.landing-footer-cta{margin-top:8px}.landing-footer-nav{display:flex;flex-wrap:wrap;gap:20px}.landing-footer-link{text-decoration:none;color:var(--color-text-muted);font-size:.9375rem;padding:4px 0;transition:color .12s ease}.landing-footer-link:hover{color:var(--color-text);text-decoration:underline}.landing-footer-copy{font-size:.8125rem;color:var(--color-text-muted)}@media (max-width: 640px){.landing-page{padding:0 16px}.landing-header{padding:16px 0}.landing-hero{padding:48px 0 32px}.landing-features,.landing-how-it-works,.landing-trust{padding:40px 0}.landing-footer{padding:40px 0 24px}.landing-cta{width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],textarea,select{width:100%;padding:10px 12px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .12s ease,box-shadow .12s ease}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0e749026}input[type=file]{width:100%;padding:10px;font:inherit;color:var(--color-text-soft);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color .12s ease,background-color .12s ease}input[type=file]:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}fieldset{border:none;padding:0;margin:0}.page-layout,.dashboard-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.dashboard-header{display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.dashboard-header h1{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}.dashboard-header nav{display:flex;align-items:center;gap:4px}.dashboard-header nav[aria-label="Main navigation"]{flex:1}.nav-link{text-decoration:none;color:var(--color-text-soft);font-weight:500;font-size:.9375rem;padding:8px 12px;border-radius:var(--radius-sm);transition:background-color .12s ease,color .12s ease}.nav-link:hover{background:var(--color-surface-soft);color:var(--color-text)}.user-greeting{color:var(--color-text-soft);font-size:.9375rem;padding:0 4px}.sign-out-button{background:transparent;color:var(--color-text-soft);border:1px solid var(--color-border);padding:8px 14px;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.sign-out-button:hover{background:var(--color-surface-soft);color:var(--color-text);border-color:var(--color-border-strong)}.dashboard-page>main,.page-layout>main{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:32px 24px}.dashboard-page>main>h2,.page-layout>main>h2{font-size:1.75rem;font-weight:700;letter-spacing:-.015em;margin:0 0 8px}.dashboard-page>main>p,.page-layout>main>p{color:var(--color-text-soft);margin:0 0 24px;max-width:760px}.loading{padding:48px 24px;text-align:center;color:var(--color-text-soft);font-size:1rem}.error-message,.upload-error-message,.auth-error-message,.session-expired-message{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:var(--radius-md);margin-bottom:16px;font-size:.9375rem}.success-message{padding:12px 16px;background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:var(--radius-md);margin-bottom:16px;font-size:.9375rem}.empty-state{padding:48px 24px;text-align:center;color:var(--color-text-soft);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sign-in-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--color-bg)}.sign-in-container{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:var(--shadow-md)}.sign-in-container h1{font-size:1.5rem;font-weight:700;text-align:center;letter-spacing:-.01em}.sign-in-subtitle{text-align:center;color:var(--color-text-soft);font-size:.9375rem;margin:8px 0 24px}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-field label{font-size:.875rem;font-weight:500;color:var(--color-text)}.field-hint{font-size:.8125rem;color:var(--color-text-muted);margin:4px 0 0}.sign-in-button{width:100%;padding:12px 16px;border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:1rem;transition:background-color .12s ease}.sign-in-button.sign-in-email{background:var(--color-primary);color:var(--color-primary-ink);margin-top:4px}.sign-in-button.sign-in-email:hover:not(:disabled){background:var(--color-primary-hover)}.sign-in-button.sign-in-apple{background:#000;color:#fff}.sign-in-button.sign-in-apple:hover:not(:disabled){background:#1a1a1a}.sign-in-button.sign-in-google{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.sign-in-button.sign-in-google:hover:not(:disabled){background:var(--color-surface-soft)}.sign-in-divider{display:flex;align-items:center;gap:12px;margin:24px 0;color:var(--color-text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em}.sign-in-divider:before,.sign-in-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.sign-in-buttons{display:grid;gap:10px}.auth-switch{text-align:center;font-size:.9375rem;color:var(--color-text-soft);margin-top:16px}.auth-switch-link{background:none;border:none;padding:0;color:var(--color-primary);font-weight:500;text-decoration:underline}.verification-message{font-size:.9375rem;color:var(--color-text-soft);margin-bottom:16px}.sign-in-footer{text-align:center;margin-top:24px;padding-top:16px;border-top:1px solid var(--color-border)}.privacy-policy-link{font-size:.8125rem;color:var(--color-text-muted);text-decoration:none}.privacy-policy-link:hover{color:var(--color-text);text-decoration:underline}.consent-gate{max-width:640px;margin:24px auto;padding:28px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.consent-gate h2{font-size:1.25rem;font-weight:700;margin-bottom:16px}.consent-gate p{margin-bottom:12px;color:var(--color-text-soft);font-size:.9375rem}.consent-checkbox-wrapper{margin:20px 0 16px}.consent-label{display:flex;align-items:flex-start;gap:10px;font-size:.9375rem;color:var(--color-text);cursor:pointer}.consent-label input[type=checkbox]{margin-top:3px;flex-shrink:0}.consent-accept-button{background:var(--color-primary);color:var(--color-primary-ink);border:1px solid transparent;padding:10px 18px;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem}.consent-accept-button:hover:not(:disabled){background:var(--color-primary-hover)}.upload-field,.retention-option{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.upload-field{display:flex;flex-direction:column;gap:10px}.upload-label{font-weight:600;font-size:.9375rem;color:var(--color-text)}.upload-hint{display:block;font-weight:400;font-size:.8125rem;color:var(--color-text-muted);margin-top:2px}.upload-error{color:#b91c1c;font-size:.875rem;margin:4px 0 0}.upload-success{color:#166534;font-size:.875rem;margin:4px 0 0}.retention-label{display:flex;align-items:flex-start;gap:10px;font-weight:500;cursor:pointer}.retention-label input[type=checkbox]{margin-top:3px;flex-shrink:0}.retention-hint{font-size:.875rem;color:var(--color-text-muted);margin-top:10px}.upload-submit-button{background:var(--color-primary);color:var(--color-primary-ink);border:1px solid transparent;padding:12px 22px;border-radius:var(--radius-md);font-weight:600;font-size:1rem;margin-top:8px;transition:background-color .12s ease,transform .12s ease}.upload-submit-button:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.processing-indicator,.upload-complete{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;margin-top:16px}.processing-indicator p,.upload-complete p{font-size:.9375rem;color:var(--color-text);margin:0 0 8px}.progress-details{margin-top:12px;display:grid;gap:12px}.progress-bar-container{display:grid;gap:4px}.progress-bar-container label{font-size:.8125rem;color:var(--color-text-soft)}progress{width:100%;height:8px;border-radius:999px;overflow:hidden;background:var(--color-surface-soft);border:none}progress::-webkit-progress-bar{background:var(--color-surface-soft)}progress::-webkit-progress-value{background:var(--color-primary)}progress::-moz-progress-bar{background:var(--color-primary)}.overall-progress{font-size:.875rem;color:var(--color-text-soft);margin:0}.upload-complete code{background:var(--color-surface-soft);border-radius:var(--radius-sm);padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875em;color:var(--color-text)}.audit-report-page{min-height:100vh;width:100%;max-width:var(--content-max);margin:0 auto;padding:32px 24px}.report-header{margin-bottom:24px}.report-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.015em}.report-period{margin-top:4px;color:var(--color-text-soft);font-size:.9375rem}.report-summary,.discrepancy-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px}.report-summary h2,.discrepancy-section h2{font-size:1.125rem;font-weight:600;margin-bottom:16px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin:0}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-item dt{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.summary-item dd{font-size:1.5rem;font-weight:700;margin:0;color:var(--color-text)}.summary-item-discrepancy dd{color:#b91c1c}.discrepancy-table,.history-table{width:100%;border-collapse:collapse;font-size:.9375rem}.discrepancy-table th,.history-table th,.discrepancy-table td,.history-table td{text-align:left;padding:12px;border-bottom:1px solid var(--color-border)}.discrepancy-table th,.history-table th{font-weight:600;color:var(--color-text-soft);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.discrepancy-table tbody tr:hover,.history-table tbody tr:hover{background:var(--color-surface-soft)}.discrepancy-table tbody tr:last-child td,.history-table tbody tr:last-child td{border-bottom:none}.no-discrepancies{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:24px;font-weight:500}.no-discrepancies .success-message{background:none;border:none;padding:0;margin:0;color:inherit;font-size:1rem}.report-actions{display:flex;gap:12px}.back-button{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border);padding:10px 18px;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;transition:background-color .12s ease,border-color .12s ease}.back-button:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.audit-report-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;color:var(--color-text-soft)}.spinner{width:32px;height:32px;border:3px solid var(--color-surface-soft);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.audit-report-error{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:28px;text-align:center}.audit-report-error h2{font-size:1.125rem;color:#b91c1c;margin-bottom:12px}.audit-report-error p{margin-bottom:16px}.history-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.history-table th{background:var(--color-surface-soft)}.status-discrepancy,.status-ok{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.8125rem;font-weight:500;border:1px solid}.status-discrepancy{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.status-ok{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.view-report-link{color:var(--color-primary);text-decoration:none;font-weight:500}.view-report-link:hover{text-decoration:underline}.settings-section,.account-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px}.settings-section h3,.account-section h3{font-size:1.0625rem;font-weight:600;margin-bottom:8px}.setting-description{color:var(--color-text-soft);font-size:.9375rem;margin-bottom:16px}.toggle-container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--color-surface-soft);border-radius:var(--radius-md)}.toggle-label{font-weight:500}.toggle-button{min-width:68px;padding:8px 14px;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.875rem;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.toggle-button.toggle-on{background:var(--color-primary);color:var(--color-primary-ink)}.toggle-button.toggle-off{background:var(--color-surface);color:var(--color-text-soft);border-color:var(--color-border)}.export-button{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border);padding:10px 18px;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;transition:background-color .12s ease,border-color .12s ease}.export-button:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.delete-button{background:var(--color-surface);color:#b91c1c;border:1px solid #fecaca;padding:10px 18px;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;transition:background-color .12s ease,border-color .12s ease}.delete-button:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.confirmation-dialog{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:20px;margin-top:16px}.confirmation-dialog h4{font-size:1rem;font-weight:600;margin-bottom:8px;color:#b91c1c}.confirmation-dialog p{color:var(--color-text);margin-bottom:16px;font-size:.9375rem}.confirmation-actions{display:flex;flex-wrap:wrap;gap:8px}.confirm-delete-button{background:#b91c1c;color:#fff;border:1px solid transparent;padding:10px 18px;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem}.confirm-delete-button:hover:not(:disabled){background:#991b1b}.cancel-button{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:10px 18px;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem}.cancel-button:hover:not(:disabled){background:var(--color-surface-soft)}.deletion-success{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:32px;text-align:center}.deletion-success h2{font-size:1.25rem;margin-bottom:12px}.deletion-success p{color:var(--color-text-soft);font-size:.9375rem;max-width:480px;margin:0 auto}@media (max-width: 768px){.dashboard-header{flex-wrap:wrap;gap:12px;padding:12px 16px}.dashboard-header nav[aria-label="Main navigation"]{order:3;flex-basis:100%;flex-wrap:wrap}.dashboard-page>main,.page-layout>main,.audit-report-page{padding:24px 16px}.discrepancy-table,.history-table{font-size:.875rem}.discrepancy-table th,.history-table th,.discrepancy-table td,.history-table td{padding:10px 8px}}
