/* Shared app component styles — extracted from per-page CSS to remove
   duplication. Loads AFTER app.css/sidebar.css and BEFORE each page CSS,
   so any page-specific override still wins. */

* { margin: 0; padding: 0; box-sizing: border-box; }

.btn-primary:hover { background: var(--color-primary-hover); }

.btn-primary { background: var(--color-primary); color: white; }

.card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-xl); margin-bottom: var(--space-xl); }

.form-group { margin-bottom: var(--space-lg); }

.form-label { display: block; font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text); margin-bottom: var(--space-sm); }

/* ---------------------------------------------------------------------------------------------------
   DATA CAVEAT BANNER — qualifies the figures on a calculation screen when the data behind them is
   incomplete. Shared because the obligation is shared: any screen that silently drops rows, substitutes
   a zero or invents a default must say so WHERE THE NUMBER IS. A user who goes straight to a tool never
   sees the Data Readiness tab.
   Each screen renders its own banner (a local renderDataCaveats()) — only the STYLE is shared. The
   wording is never written on the page: it is the readiness engine's own finding text, so a tool page
   cannot drift from the readiness screen.
   --------------------------------------------------------------------------------------------------- */
.data-warn { font-size: var(--font-size-base); font-weight: 600; line-height: 1.5; color: var(--warn-ink);
             background: rgba(138,75,15,0.07); border-left: 3px solid var(--warn-ink);
             border-radius: var(--radius-sm); padding: var(--space-sm) var(--space-md); text-align: left;
             margin: 0 0 var(--space-md); }
[data-theme="dark"] .data-warn { background: rgba(255,192,0,0.10); }
.data-warn.data-warn-blocked { color: var(--color-error); border-left-color: var(--color-error);
                               background: rgba(200,40,40,0.07); }
.data-warn-line { display: block; padding: 2px 0; }
.data-warn-more { font-weight: 500; opacity: 0.85; }
