:root{--font-main:system-ui,-apple-system,'Segoe UI',sans-serif;--color-primary:#176b83;--color-primary-dark:#102a43;--color-primary-light:#2088a6;--color-secondary:#0f766e;--color-accent:#e6ac43;--color-bg:#fff;--color-bg-alt:#f4f8fa;--color-bg-dark:#102a43;--color-surface:#fff;--color-text:#183042;--color-text-muted:#566d7c;--color-text-light:#8295a1;--color-border:#dce6eb;--color-border-light:#edf2f5;--color-success:#16834e;--color-danger:#c03945;--color-warning:#e6ac43;--color-info:#2088a6;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 3px #102a4310;--shadow-md:0 5px 16px #102a4310;--shadow-lg:0 12px 28px #102a4318;--transition-fast:150ms ease;--transition-base:250ms ease}
*{box-sizing:border-box}body{margin:0;font-family:var(--font-main);color:var(--color-text);background:var(--color-bg);line-height:1.6}h1,h2,h3,h4{font-weight:750;line-height:1.2}a{color:var(--color-primary)}.section{padding:3rem 0}.section-title{margin-bottom:2rem}.section-title h2{font-size:1.8rem}.section-title p,.form-text{color:var(--color-text-muted)}.form-group{margin-bottom:1rem}.form-group label{font-weight:650;margin-bottom:.4rem}.card{border-color:var(--color-border);border-radius:var(--radius-lg)}.btn-primary{--bs-btn-bg:#176b83;--bs-btn-border-color:#176b83;--bs-btn-hover-bg:#102a43;--bs-btn-hover-border-color:#102a43}.site-header{border-bottom:1px solid var(--color-border);background:#fff}.shell-bar{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.1rem}.brand{display:flex;gap:.65rem;align-items:center;font-size:1.45rem;font-weight:800;color:#102a43;text-decoration:none}.site-header nav{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap}.site-header nav a{font-size:.9rem;text-decoration:none;font-weight:650}.soon{font-size:.65rem;white-space:nowrap;background:#e9f4f2;padding:.2rem .4rem;border-radius:.4rem}.site-footer{background:#102a43;color:#e1edf1;padding:1.4rem 0}.site-footer p{font-size:.85rem;margin:.35rem 0}.site-footer a{color:#8ee6d0}.skip-link{position:absolute;left:1rem;top:-100px;z-index:100;background:white;padding:1rem}.skip-link:focus{top:1rem}.landing-hero{background:radial-gradient(ellipse at 85% 20%,#176b83 0,transparent 50%),#102a43;color:white;padding:4.5rem 0}.landing-hero h1{max-width:850px;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.045em}.landing-hero p{max-width:650px;font-size:1.15rem;color:#c6dee7}.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:750;color:#8ee6d0}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1.25rem}.tool-tile{display:block;padding:1.5rem;border:1px solid var(--color-border);border-radius:1rem;text-decoration:none;color:var(--color-text);background:white;transition:box-shadow .15s}.tool-tile:hover{box-shadow:var(--shadow-lg);color:var(--color-primary)}.tool-tile h2{font-size:1.2rem}.tool-tile p{color:var(--color-text-muted);font-size:.95rem;margin:0}.tool-tile .tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:.75rem;color:var(--color-primary)}.reading-width{max-width:900px}.status-panel{padding:2rem;border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg-alt)}.status-panel h2{font-size:1.4rem}.text-muted{color:var(--color-text-muted)!important}:focus-visible{outline:3px solid #2088a6;outline-offset:3px}@media(max-width:768px){.shell-bar{align-items:flex-start;flex-direction:column;gap:.8rem}.site-header nav{gap:.55rem 1rem}.site-header nav a{font-size:.8rem}.landing-hero{padding:3rem 0}.section{padding:2rem 0}}
/* Grid children must shrink around the horizontally scrollable result table. */
.calculator-main,.calculator-results{min-width:0}
@media(max-width:991px){.calculator-layout{grid-template-columns:minmax(0,1fr)!important}}

/* Independent account forms share the public site's colours and spacing. */
.account-section { padding: 3rem 1rem; }
.account-card { max-width: 36rem; margin: 0 auto; padding: 2rem; border: 1px solid #cbd5e1; border-radius: 1rem; background: #fff; color: #102a43; overflow-wrap: anywhere; }
.account-card h1 { font-size: 1.9rem; }
.account-form { display: grid; gap: .65rem; margin: 1.5rem 0; }
.account-form input { width: 100%; min-width: 0; padding: .7rem; border: 1px solid #829ab1; border-radius: .35rem; }
.account-form input[type=hidden] { display: none; }
.account-form button { padding: .8rem; background: #102a43; color: #fff; border: 0; border-radius: .35rem; }
.account-message { padding: 1rem; background: #e8f1f8; border-left: 4px solid #2877a7; }
.account-error { background: #fff1f0; border-color: #b42318; }
.nav-logout { display: inline; margin: 0; }
.nav-logout button { border: 0; padding: 0; color: inherit; background: transparent; font: inherit; text-decoration: underline; }
