body{font-family:sans-serif;font-size:1rem;color:var(--text)}button,input,select,textarea{font-family:inherit;font-size:inherit}:root{--text:#111;--text-subtle:#555;--text-muted:#999;--text-secondary:#6b7280;--text-faint:#bbb;--ink:#333;--border:#eee;--border-input:#ddd;--track-bg:#f0f0f0;--bg:#ffffff;--bg-subtle:#f9f9f9;--primary:#333;--danger:#dc2626;--success:#16a34a;--radius:6px;--radius-lg:8px;--fs-xs:0.72rem;--fs-sm:0.8rem;--fs-base:0.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem}a{transition:opacity .12s ease}a:hover{opacity:.72}button{transition:opacity .12s ease}button:hover:not(:disabled){opacity:.72}button:disabled{cursor:not-allowed}:focus{outline:none}:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:3px}.metrics-dashboard{--accent:#4e79a7;--accent-soft:rgba(78,121,167,0.08);--positive:#16a34a;--negative:#dc2626;--warn:#d97706;--ink-900:#111827;--ink-700:#374151;--ink-500:#6b7280;--ink-300:#9ca3af;--line-200:#e5e7eb;--line-100:#f1f2f4;--surface:#ffffff;--surface-muted:#f9fafb;--radius:8px;--pad:0.875rem;--fs-kpi:1.625rem;--fs-h2:1rem;--fs-body:0.875rem;--fs-sm:0.8rem;--fs-meta:0.72rem;color:var(--ink-900)}.metrics-dashboard .row{display:grid;grid-gap:.75rem;gap:.75rem;margin-bottom:.75rem}.metrics-dashboard .row-kpi{grid-template-columns:repeat(2,1fr)}.metrics-dashboard .row-motion{grid-template-columns:2fr 1fr}.metrics-dashboard .row-structure{grid-template-columns:1fr 1fr}.metrics-dashboard .row-detail{grid-template-columns:1fr}.metrics-dashboard .row-hero{grid-template-columns:2fr 3fr;align-items:stretch}.metrics-dashboard .hero-stack{display:flex;flex-direction:column;gap:.75rem;min-width:0}@media (max-width:900px){.metrics-dashboard .row-hero,.metrics-dashboard .row-kpi,.metrics-dashboard .row-motion,.metrics-dashboard .row-structure{grid-template-columns:1fr}.metrics-dashboard .row{gap:.5rem;margin-bottom:.5rem}}.header-hamburger-wrapper{display:none}@media (max-width:640px){.header-nav-desktop{display:none!important}.header-hamburger-wrapper{display:block}}.landing-hero h1{font-size:2.75rem}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2rem;gap:2rem}@media (max-width:640px){.landing-hero h1{font-size:2rem}.landing-feature-grid{grid-template-columns:1fr;gap:1.5rem}.landing-feature-grid>*{grid-column:1!important;grid-row:auto!important}.landing-feature-grid>:nth-child(4){order:3}.landing-feature-grid>:nth-child(3){order:4}}.ai-analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.25rem;gap:1.25rem}.area-charts-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:1.25rem}@media (max-width:640px){.area-charts-grid{grid-template-columns:1fr}.area-charts-grid>div{height:auto!important;max-height:20rem}}.forum-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.forum-stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin:1.5rem 0}@media (max-width:640px){.forum-stats-grid{grid-template-columns:1fr}}.home-main{padding:2rem;flex:1 1;max-width:80rem;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}@media (max-width:640px){.home-main{padding:1.25rem}}.home-grid-panels{display:grid;grid-template-columns:1fr 260px 260px;grid-gap:2rem;gap:2rem;align-items:start}.home-grid-panels>*{min-width:0}.home-activity-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;height:calc(100vh - 11rem);overflow:hidden;margin-bottom:2.5rem}@media (max-width:640px){.home-activity-grid{grid-template-columns:1fr;height:auto;overflow:visible}}.home-grid-2col{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;align-items:start}.home-grid-2col>*{min-width:0}@media (max-width:1100px){.home-grid-panels{grid-template-columns:1fr 260px}}@media (max-width:720px){.home-grid-panels{grid-template-columns:1fr}}@media (max-width:640px){.home-grid-2col{grid-template-columns:1fr}}.value-prop-image{width:75%}@media (max-width:640px){.value-prop-image{width:100%}}@keyframes toast-in{0%{opacity:0;transform:translateX(1rem)}to{opacity:1;transform:translateX(0)}}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--border);border-top-color:var(--text-muted);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}