/* GoalPulse visual language — Stripe Status / Admin reference. Purely visual. */
:root{--gp-bg:#0b0b0c;--gp-surface:#19191b;--gp-surface-soft:#1d1d20;--gp-line:#3a3337;--gp-text:#f7f7f8;--gp-muted:#a7a4a7;--gp-red:#ba222c;--gp-red-hover:#d12c38;--gp-radius:14px}
html{color-scheme:dark}
body{background:var(--gp-bg)!important;color:var(--gp-text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;-webkit-font-smoothing:antialiased}
body :is(h1,h2,h3,h4,p,small,label,button,input,select,textarea,a){font-family:inherit}
body :is(h1,h2,h3,h4){letter-spacing:-.025em;color:var(--gp-text)}
body :is(p,.muted,.psb2-muted,.gp-control-subtext){line-height:1.55}
body :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:#242125;color:#f5f5f6;border:1px solid #514047;border-radius:9px;box-sizing:border-box}
body :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{outline:2px solid #d94b55;outline-offset:1px}
body :is(button,.btn,a.btn,a.ghost){border-radius:9px;font-size:12px;font-weight:750;transition:background-color .16s,border-color .16s,color .16s}
body :is(button,.btn,a.btn,a.ghost):focus-visible{outline:2px solid #f16b72;outline-offset:2px}
body :is(button.btn,a.btn,.gp-stripe-primary){background-color:var(--gp-red);border-color:#d13943;color:#fff}
body :is(button.btn,a.btn):hover{background-color:var(--gp-red-hover)}
body :is(.ghost,button.ghost,a.ghost){background-color:#252225;border:1px solid #554248;color:#fff}
body .nav.wrap{background:transparent;border-color:#30292d}
body .nav.wrap a.brand{font-weight:800;letter-spacing:-.025em}
body .nav.wrap nav a:not(.btn){color:#e4e1e2}
/* Admin: keep existing structure, layout and functionality. */
body .gp-control{color:var(--gp-text)}
body .gp-control :is(.gp-control-card,.panel,.gp-stripe-card){background:var(--gp-surface);border:1px solid var(--gp-line);border-radius:14px}
body .gp-control .psb-stats>div{background:var(--gp-surface-soft);border:1px solid var(--gp-line);border-radius:12px}
body .gp-control :is(.gp-control-title h2,.gp-stripe-heading h3){letter-spacing:-.025em}
body .gp-control .psb-table{font-size:12px}
body .gp-control .psb-table th{font-size:10px;letter-spacing:.055em;color:#a8a5a8}
body .gp-control .psb-table td,body .gp-control .psb-table th{border-bottom:1px solid #393136}
body .gp-control :is(.gp-admin-search,.gp-grant-duration){background:#242125;border-color:#514047;color:#fff}
/* Dashboard: same compact, understated cards as Stripe panel. */
body .dashboard.psb2{color:var(--gp-text)}
body .dashboard.psb2 .psb2-panel{background:var(--gp-surface)!important;border:1px solid var(--gp-line)!important;border-radius:14px!important;box-shadow:none!important}
body .dashboard.psb2 .psb2-summary .psb2-panel{background:var(--gp-surface-soft)!important;border-radius:12px!important}
body .dashboard.psb2 :is(.psb2-title h2,.psb2-heading h2){color:#f7f7f8;font-weight:750;letter-spacing:-.025em}
body .dashboard.psb2 :is(.psb2-muted,.psb2-intro){color:var(--gp-muted)}
body .dashboard.psb2 :is(.psb2-stat,.gp-stat-value){color:#fff;font-weight:750;letter-spacing:-.03em}
body .dashboard.psb2 .psb2-badge{border-radius:7px}
body .dashboard.psb2 :is(input:not([type=checkbox]),select,textarea){background:#242125;border-color:#514047}
/* Landing page: retain hierarchy and layout while unifying typography and surfaces. */
body .gp-hero{background-color:var(--gp-bg)}
body .gp-hero h1{letter-spacing:-.045em}
body :is(.gp-feature-strip article,.gp-preview-grid>*,.gp-steps-grid>*,.gp-pricing-grid>article,.gp-pricing-grid>.gp-pricing-card,.gp-chat-panel){background-color:var(--gp-surface);border:1px solid var(--gp-line);border-radius:14px;box-shadow:none}
body :is(.gp-section-head h2,.gp-pricing-grid h2){letter-spacing:-.035em}
body :is(.gp-section-head p,.gp-feature-strip p,.gp-pricing-grid p){color:var(--gp-muted)}
body :is(.gp-kicker,.psb2-eyebrow,.gp-control-kicker){font-size:11px;font-weight:800;letter-spacing:.12em}
/* Consistent footer and mobile navigation. */
body .psb-site-footer{background:#111113;border-top:1px solid var(--gp-line)}
body .psb-mobile-menu{background:#19191b;border-color:var(--gp-line)}
@media(max-width:700px){body .gp-control :is(.gp-control-card,.panel,.gp-stripe-card){padding:13px}body .dashboard.psb2 .psb2-panel{border-radius:12px!important}}
@media(prefers-reduced-motion:reduce){body :is(button,.btn,a.btn,a.ghost){transition:none}}
