/* ============================================================
   PRO WEB Admin — "soft" design language (matches the generated
   sites' soft layout: docs/UPGRADE-GUIDE.md). Pure restyle over
   Bootstrap 5 — no behavioral changes. Loaded after app.css.
   ============================================================ */
:root {
  --pw-primary: #1B2A4A;
  --pw-primary-deep: #0F1A30;
  --pw-accent: #B3893A;
  --pw-accent-ink: #1C1405;
  --pw-ink: #171A21;
  --pw-paper: #FFFFFF;
  --pw-tint: #F6F3ED;
  --pw-muted: #5D6470;
  --pw-line: #E6E2D9;
  --pw-radius-sm: 10px;
  --pw-radius: 16px;
  --pw-shadow-card: 0 1px 2px rgba(16,24,40,.04), 0 10px 26px -14px rgba(16,24,40,.10);
}

html, body {
  font-family: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--pw-tint);
  color: var(--pw-ink);
}

h1, h2, h3, .h1, .h2, .h3 { font-weight: 800; letter-spacing: -0.02em; color: var(--pw-ink); }
h1, .h1 { font-size: 1.75rem; }

a, .btn-link { color: var(--pw-primary); }
a:hover, .btn-link:hover { color: var(--pw-accent); }

/* ---- buttons: navy primary, soft radii, calm outlines ---- */
.btn { border-radius: var(--pw-radius-sm); font-weight: 600; }
.btn-sm { border-radius: 8px; }
.btn-primary {
  background-color: var(--pw-primary); border-color: var(--pw-primary); color: #fff;
  /* Bootstrap's .btn:disabled reads these vars — without them a disabled/saving
     button flashes back to stock Bootstrap blue */
  --bs-btn-disabled-bg: var(--pw-primary);
  --bs-btn-disabled-border-color: var(--pw-primary);
  --bs-btn-disabled-color: #fff;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: var(--pw-primary-deep) !important; border-color: var(--pw-primary-deep) !important; color: #fff;
}
.btn-outline-primary {
  color: var(--pw-primary); border-color: var(--pw-primary);
  --bs-btn-disabled-color: var(--pw-primary);
  --bs-btn-disabled-border-color: var(--pw-primary);
}
.btn-outline-primary:hover { background-color: var(--pw-primary); border-color: var(--pw-primary); color: #fff; }
.btn-success {
  background-color: #2F5D50; border-color: #2F5D50;
  --bs-btn-disabled-bg: #2F5D50;
  --bs-btn-disabled-border-color: #2F5D50;
  --bs-btn-disabled-color: #fff;
}
.btn-success:hover, .btn-success:focus { background-color: #24473d !important; border-color: #24473d !important; }
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus {
  box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--pw-accent) 35%, transparent);
}

/* ---- forms: rounded inputs, accent focus ring ---- */
.form-control, .form-select, .input-group-text {
  border-radius: var(--pw-radius-sm); border-color: var(--pw-line);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--pw-accent);
  box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--pw-accent) 30%, transparent);
}
.form-check-input:checked { background-color: var(--pw-primary); border-color: var(--pw-primary); }
.form-label { font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.form-text { color: var(--pw-muted); }

/* ---- cards / tables / lists: floating, hairline-free ---- */
.card {
  border: 0; border-radius: var(--pw-radius); box-shadow: var(--pw-shadow-card);
  background: var(--pw-paper);
}
.card-header {
  background: transparent; border-bottom: 1px solid var(--pw-line);
  font-weight: 700; border-top-left-radius: var(--pw-radius) !important; border-top-right-radius: var(--pw-radius) !important;
}
.card.bg-light { background: color-mix(in srgb, var(--pw-tint) 55%, var(--pw-paper)) !important; }

.table { --bs-table-hover-bg: color-mix(in srgb, var(--pw-accent) 6%, transparent); }
.table thead th {
  font-size: .78rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--pw-muted); font-weight: 700; border-bottom-color: var(--pw-line);
}
.table td { border-bottom-color: var(--pw-line); }
.table-active { --bs-table-bg-state: color-mix(in srgb, var(--pw-accent) 10%, transparent); }

.list-group { border-radius: var(--pw-radius-sm); }
.list-group-item { border-color: var(--pw-line); }
.list-group-item.active {
  background-color: var(--pw-primary); border-color: var(--pw-primary);
}

.badge { border-radius: 999px; font-weight: 600; }
.alert { border-radius: var(--pw-radius-sm); border: 0; }

/* validation stays loud but on-palette */
.valid.modified:not([type=checkbox]) { outline: 1px solid #2F5D50; }
.invalid { outline: 1px solid #b3261e; }
.validation-message { color: #b3261e; }

/* media picker tiles are themed in MediaPathSelect.razor.css — its scoped
   [b-*] selectors outrank anything written here, so the palette lives there */
