/* Loaded last (after the theme files and controls.css), so these utilities win ties. Tokens: theme/css/app-theme.css. */
[hidden] { display: none !important; }

/* Status colour for any component that reads --tone (chips, project cards and hero, inspection
   cards, contract picks, status options). Pair with the tone names returned by the *Tone helpers. */
.tone-brand { --tone: var(--brand); }
.tone-info { --tone: var(--info); }
.tone-success { --tone: var(--success); }
.tone-warning { --tone: var(--warning); }
.tone-danger { --tone: var(--error); }
.tone-neutral { --tone: var(--muted); }

.validation-message, .validation-errors { color: var(--error); }

/* Public pages: the shell's font and colours come from PublicLayout.razor.css. */
.public-shell { line-height: 1.7; }
.public-shell img { max-width: 100%; }
.public-shell button:disabled { opacity: .55; cursor: not-allowed; }
.public-shell summary { cursor: pointer; }

/* Plain content pages without a layout panel (e.g. NotFound). */
.page { max-width: 1200px; margin: auto; padding: 2rem; }

#blazor-error-ui { display: none; position: fixed; inset: auto 0 0; z-index: 1000;
    padding: 1rem; background: var(--surface); color: var(--ink); border-top: 3px solid var(--error); }
#blazor-error-ui .reload { margin-inline: 1rem; text-decoration: underline; }
#blazor-error-ui .dismiss { float: inline-end; }
