:root{--bg: #0f1419;--bg-card: #1a2332;--bg-card-hover: #222d3f;--text: #e6edf3;--text-muted: #8b9eb5;--accent: #d4a853;--accent-hover: #e4bc6a;--border: #2d3a4d;--error: #e07c7c;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--font-head: "Outfit", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--focus-ring: 2px solid var(--accent);--min-touch: 44px}*{box-sizing:border-box}.skip-link{position:absolute;top:-100px;left:1rem;z-index:1000;padding:.75rem 1rem;background:var(--accent);color:var(--bg);font-weight:600;text-decoration:none;border-radius:var(--radius-sm);transition:top .2s}.skip-link:focus{top:1rem;outline:var(--focus-ring);outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex="0"]:focus-visible{outline:var(--focus-ring);outline-offset:2px}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}#root{min-height:100vh}.layout{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border)}.header-spacer{flex:1;min-width:.5rem}.header-user{flex-shrink:0}.header-sign-in{display:inline-flex;align-items:center;min-height:var(--min-touch);padding:.5rem 1rem;color:var(--accent);font-weight:500;text-decoration:none;border-radius:var(--radius-sm)}.header-sign-in:hover{color:var(--accent-hover);background:#d4a8531f}.user-menu-wrap{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--min-touch);padding:.5rem .75rem;color:var(--text-muted);font-weight:500;border-radius:var(--radius-sm)}.user-menu-trigger:hover{color:var(--text);background:#ffffff0f}.user-menu-trigger-text{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-chevron{font-size:.6rem;opacity:.8}.user-menu-dropdown{position:absolute;top:100%;right:0;left:auto;margin-top:.25rem;min-width:200px;padding:.5rem 0 .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:100;display:flex;flex-direction:column;align-items:stretch}.user-menu-email{margin:0;padding:.5rem 1rem .75rem;font-size:.8125rem;color:var(--text-muted);word-break:break-all;border-bottom:1px solid var(--border);flex-shrink:0}.user-menu-dropdown a.user-menu-item{width:100%;box-sizing:border-box}.user-menu-item{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:var(--min-touch);padding:.75rem 1rem;box-sizing:border-box;text-align:left;font-family:inherit;font-size:.9375rem;font-weight:inherit;color:var(--text);text-decoration:none;background:none;border:none;cursor:pointer;transition:background .2s;margin:0;appearance:none;-webkit-appearance:none;flex-shrink:0}button.user-menu-item{margin:0;overflow:visible;line-height:inherit;width:100%;padding:.75rem 1rem}.user-menu-item:last-child{margin-bottom:0}.user-menu-item:hover{background:#ffffff0f}.user-menu-item:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.header-menu{display:flex;align-items:center;justify-content:center;min-width:var(--min-touch);min-height:var(--min-touch);padding:.5rem;border-radius:var(--radius-sm);color:var(--text-muted)}.header-menu:hover{color:var(--accent);background:#ffffff0f}.header-menu-icon{font-size:1.25rem}.brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-size:1.5rem;font-weight:600;color:var(--accent);text-decoration:none;letter-spacing:.02em}.brand:hover{color:var(--accent-hover)}.brand-logo{height:2rem;width:auto;object-fit:contain;vertical-align:middle}.brand-text{min-width:0}.nav{display:flex;gap:.5rem}.nav-link{padding:.5rem 1rem;color:var(--text-muted);text-decoration:none;border-radius:var(--radius-sm);font-weight:500;transition:color .2s,background .2s}.nav-link:hover{color:var(--text);background:#ffffff0f}.nav-link.active{color:var(--accent);background:#d4a8531f}.nav-user{display:flex;align-items:center;gap:.75rem}.nav-user-email{font-size:.875rem;color:var(--text-muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-button{background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:0}.nav .link-button.nav-link{padding:.5rem 1rem}.sidebar-backdrop{position:fixed;inset:0;background:#0006;z-index:98;transition:opacity .2s}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;max-width:85vw;background:var(--bg-card);border-right:1px solid var(--border);z-index:99;transform:translate(-100%);transition:transform .25s ease;overflow-y:auto}.sidebar.sidebar-open{transform:translate(0)}.sidebar-nav{display:flex;flex-direction:column;padding:1.5rem 0;gap:.25rem}.sidebar-link{display:flex;align-items:center;min-height:var(--min-touch);padding:.75rem 1.5rem;color:var(--text-muted);text-decoration:none;font-weight:500;transition:color .2s,background .2s}.sidebar-link:hover{color:var(--text);background:#ffffff0f}.sidebar-link.active{color:var(--accent);background:#d4a8531f}.report-list-page{list-style:none;padding:0;margin:0}.report-list-page li{border-bottom:1px solid var(--border)}.report-list-row{display:flex;align-items:center;gap:.5rem}.report-list-row .report-list-item{flex:1;min-width:0}.report-list-delete{flex-shrink:0;padding:.5rem;color:var(--text-muted);font-size:1.125rem;border-radius:var(--radius-sm)}.report-list-delete:hover:not(:disabled){color:var(--error);background:#e07c7c1f}.report-list-delete:disabled{opacity:.6}.report-list-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:var(--min-touch);padding:1rem 0;text-decoration:none;color:inherit;transition:background .2s;border-radius:var(--radius-sm)}.report-list-item:hover{background:#ffffff0a}.report-list-name{font-weight:600;color:var(--accent)}.report-list-meta{font-size:.9375rem;color:var(--text-muted)}.report-back{margin:0 0 1rem}.report-back a{color:var(--text-muted);text-decoration:none}.report-back a:hover{color:var(--accent)}.report-actions{margin:0 0 1rem}.verify-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:#d4a8531f;border-bottom:1px solid var(--border);font-size:.875rem}.verify-banner span:first-child{flex:1;min-width:200px}.verify-banner-btn{color:var(--accent);font-weight:500;text-decoration:underline}.verify-banner-btn:hover{text-decoration:none}.verify-banner-ok{color:var(--text-muted)}.verify-banner-err{color:var(--error)}.toast{padding:.75rem 1.5rem;text-align:center;font-size:.9375rem;animation:toastIn .25s ease}.toast-signed-out{background:#d4a85326;color:var(--accent);border-bottom:1px solid var(--border)}@keyframes toastIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.main{flex:1;padding:2rem 1.5rem;max-width:720px;margin:0 auto;width:100%}.footer{padding:1rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.875rem;border-top:1px solid var(--border)}.page{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page h1{font-family:var(--font-head);font-size:2rem;font-weight:600;margin:0 0 .5rem;color:var(--text)}.subtitle{color:var(--text-muted);margin:0 0 2rem;font-size:1rem}.home-page .hero{text-align:center;padding:2rem 0 3rem}.home-page .hero h1{font-size:2.5rem;margin-bottom:.75rem}.lead{font-size:1.125rem;color:var(--text-muted);max-width:480px;margin:0 auto 2rem;line-height:1.65}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:background .2s,border-color .2s}.feature-card:hover{background:var(--bg-card-hover);border-color:#d4a8534d}.feature-icon{display:inline-block;color:var(--accent);font-size:1.5rem;margin-bottom:.75rem}.feature-card h2{font-family:var(--font-head);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.feature-card p{color:var(--text-muted);font-size:.9375rem;margin:0 0 1rem}.feature-card .link{color:var(--accent);text-decoration:none;font-weight:500}.feature-card .link:hover{text-decoration:underline}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.form-card label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9375rem}.form-card .dob-input-wrap{position:relative;display:flex;align-items:center;gap:0;margin-bottom:.35rem}.form-card .dob-input-wrap input[type=text]{flex:1;min-width:0;margin-bottom:0}.form-card .dob-calendar-wrap{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);width:2.5rem;height:2.25rem;display:flex;align-items:center;justify-content:center;pointer-events:none}.form-card .dob-native-picker{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;pointer-events:auto;border:none;padding:0;margin:0;font-size:1rem}.form-card .dob-calendar-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);pointer-events:none}.form-card .dob-calendar-wrap:hover .dob-calendar-icon{color:var(--accent)}.form-card .dob-native-picker:disabled{cursor:not-allowed;pointer-events:none}.form-card .input-hint{display:block;margin-top:-.25rem;margin-bottom:1rem;font-size:.8125rem;color:var(--text-muted)}.form-card input[type=text]{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1rem}.form-card input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #d4a85333}.form-card input::placeholder{color:var(--text-muted);opacity:.8}.radio-group{display:flex;gap:1.5rem;margin-bottom:1rem}.radio{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.radio input{accent-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--min-touch);padding:.75rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,transform .1s}.btn:disabled{opacity:.7;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--bg);width:100%;margin-top:.25rem}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn-secondary:hover:not(:disabled){background:#d4a8531f}.btn-danger{background:transparent;color:var(--error);border:2px solid var(--error);margin-top:.5rem}.btn-danger:hover:not(:disabled){background:#e07c7c1f}.account-page .subtitle{margin-bottom:2rem}.account-section{margin-bottom:1.5rem}.account-section-title{font-family:var(--font-head);font-size:1.25rem;font-weight:600;margin:0 0 1rem;color:var(--text)}.account-form label,.account-readonly-label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9375rem}.account-form input:not(.account-readonly){width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1rem}.account-form input:not(.account-readonly):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #d4a85333}.account-readonly{width:100%;padding:.75rem 1rem;font-size:1rem;color:var(--text-muted);background:#0003;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1rem;cursor:not-allowed}.account-form .password-input-wrap{margin-bottom:1rem}.account-form .password-input-wrap input{margin-bottom:0}.account-message{font-size:.9375rem;margin:.5rem 0 0;padding:.5rem 0}.account-message.success{color:var(--accent)}.account-message.error{color:var(--error)}.account-danger{border-color:#e07c7c59}.account-danger-text{color:var(--text-muted);font-size:.9375rem;margin:0 0 1rem;line-height:1.5}.account-delete-actions{display:flex;flex-direction:column;gap:.5rem}.account-delete-password-label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9375rem}.account-delete-actions .password-input-wrap{margin-bottom:0}.account-delete-actions .password-input-wrap input{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.account-delete-actions .password-input-wrap input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #d4a85333}.account-delete-actions .input-hint{margin-top:-.25rem;margin-bottom:.25rem;font-size:.8125rem;color:var(--text-muted)}.account-checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem;color:var(--text-muted)}.account-checkbox-label input{accent-color:var(--error);min-width:1.125rem;min-height:1.125rem}.message{padding:1rem;border-radius:var(--radius-sm);margin-top:1rem}.message.error{background:#e07c7c26;color:var(--error);border:1px solid rgba(224,124,124,.4)}.message.success{background:#64a0641f;color:var(--success, #2d6a2d);border:1px solid rgba(100,160,100,.35)}.check-email-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.check-email-card{width:100%;max-width:440px;text-align:center}.check-email-icon{font-size:2.5rem;line-height:1;margin-bottom:1rem}.check-email-heading{margin:0 0 .75rem;font-size:1.5rem}.check-email-lead{margin:0 0 1.25rem;font-size:1rem;line-height:1.5;color:var(--text)}.check-email-lead strong{word-break:break-all}.check-email-steps{text-align:left;margin:0 0 1.25rem;padding-left:1.35rem;font-size:.9375rem;line-height:1.6;color:var(--text-muted)}.check-email-steps li{margin-bottom:.35rem}.check-email-tip{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-muted);font-style:italic}.check-email-actions{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.check-email-actions .btn{width:100%}.check-email-back{margin:1.5rem 0 0;font-size:.9375rem}.check-email-back .link{color:var(--text-muted);text-decoration:none}.check-email-back .link:hover{color:var(--accent);text-decoration:underline}.result-card{margin-top:1.5rem}.result-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:1rem}.result-name{font-family:var(--font-head);font-size:1.25rem;font-weight:600;color:var(--accent)}.result-number{font-weight:600;color:var(--text-muted);font-size:.9375rem}.result-analysis{color:var(--text);line-height:1.7}.report{margin-top:1.5rem}.report-title{font-family:var(--font-head);font-size:1.5rem;margin:0 0 .25rem;color:var(--accent)}.report-meta{color:var(--text-muted);font-size:.875rem;margin:0 0 1.5rem}.report-section{margin-bottom:1.5rem}.report-section:last-child{margin-bottom:0}.report-section h3{font-family:var(--font-head);font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.report-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem}.report-grid li{padding:.5rem 0;border-bottom:1px solid var(--border)}.report-list{list-style:none;padding:0;margin:0}.report-list li{padding:.4rem 0;border-bottom:1px solid var(--border)}.report-list li:last-child{border-bottom:none}.report-text{margin:0;line-height:1.7;color:var(--text)}.report-hint{font-size:.875rem;color:var(--text-muted);margin:.5rem 0 0}.report-label{font-size:.875rem;font-weight:600;margin:.5rem 0 .25rem;color:var(--text-muted)}.loshu-grid{display:inline-block;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:.5rem 0}.loshu-row{display:flex}.loshu-cell{width:3.5rem;height:3.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--bg);font-weight:600}.loshu-cell.present{background:#d4a85326;color:var(--accent)}.loshu-cell.missing{color:var(--text-muted);opacity:.7}.loshu-number{font-size:1.1rem}.loshu-count{font-size:.75rem;opacity:.9}.pinnacles-table-wrap{overflow-x:auto;margin:.5rem 0}.pinnacles-table{width:100%;border-collapse:collapse;font-size:.9375rem}.pinnacles-table th,.pinnacles-table td{padding:.5rem .75rem;text-align:left;border:1px solid var(--border)}.pinnacles-table th{background:var(--bg);font-weight:600;color:var(--text-muted)}.pinnacles-table tbody tr:nth-child(2n){background:#ffffff05}.pinnacles-table .pinnacle-years{white-space:nowrap;color:var(--text-muted);font-variant-numeric:tabular-nums;width:1%}.pinnacles-table .pinnacle-num{font-weight:600;font-size:1.1em;text-align:center;width:1%}.pinnacles-table .pinnacle-significance{padding-left:1rem;min-width:12rem}.report-section-karmic{border-left:3px solid var(--accent)}.login-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.auth-card{width:100%;max-width:400px}.verify-required-card{max-width:480px}.verify-required-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.auth-form label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9375rem}.auth-form input{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1rem}.auth-form input:focus{outline:none;border-color:var(--accent)}.password-input-wrap{position:relative;display:flex;align-items:center;margin-bottom:1rem}.password-input-wrap input{flex:1;margin-bottom:0;padding-right:4rem}.password-toggle{position:absolute;right:.5rem;padding:.35rem .5rem;font-size:.8125rem;color:var(--text-muted);border-radius:var(--radius-sm)}.password-toggle:hover{color:var(--accent)}.auth-toggle{margin-top:1rem;font-size:.9375rem;color:var(--text-muted)}.auth-toggle .link-button{color:var(--accent);text-decoration:none;font-weight:500}.auth-toggle .link-button.auth-toggle-link,.auth-toggle-link{color:var(--accent);font-weight:500}.auth-toggle .link-button:hover,.auth-toggle-link:hover{text-decoration:underline}.auth-forgot{margin:-.5rem 0 1rem;font-size:.875rem}.auth-forgot .link-button{color:var(--text-muted)}.auth-forgot .link-button:hover{color:var(--accent);text-decoration:underline}.auth-back{display:inline-block;margin-top:1rem;font-size:.875rem;color:var(--text-muted);text-decoration:none}.auth-back:hover{color:var(--accent)}.auth-message{color:var(--text-muted);margin:0 0 1rem}.report-history{margin-bottom:1.5rem}.report-history-title{font-family:var(--font-head);font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.report-history-list{list-style:none;padding:0;margin:0}.report-history-list li{border-bottom:1px solid var(--border)}.report-history-list li:last-child{border-bottom:none}.report-history-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;width:100%;padding:.75rem 0;text-align:left;background:none;border:none;font:inherit;color:inherit;cursor:pointer;transition:background .2s;border-radius:var(--radius-sm)}.report-history-item:hover:not(:disabled){background:#ffffff0f}.report-history-item:disabled{opacity:.7;cursor:not-allowed}.report-history-name{font-weight:600;color:var(--accent)}.report-history-meta{font-size:.875rem;color:var(--text-muted)}@media(max-width:640px){.header{flex-wrap:nowrap;padding:.75rem 1rem;gap:.5rem}.header .brand{font-size:1.25rem;min-width:0}.header .brand-logo{height:1.65rem}.header-menu{flex-shrink:0}.header-spacer{min-width:.25rem}.user-menu-dropdown{position:fixed;right:1rem;left:auto;top:4.25rem;width:min(280px,calc(100vw - 2rem));margin-top:0}.nav,.nav-user{justify-content:center}.nav-user-email{max-width:100%}.home-page .hero h1{font-size:1.875rem}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}}
