:root {
  --app-bg: #f6f8fc;
  --card-shadow: 0 8px 24px rgba(16,24,40,.06);
  --border-soft: #e5eaf2;
}
body.bg-app { background: var(--app-bg); color: #1f2937; }
.card { border-color: var(--border-soft); box-shadow: var(--card-shadow); border-radius: 14px; }
.card-header { background: #fff; border-bottom: 1px solid var(--border-soft); }
.table thead th { white-space: nowrap; font-size: .85rem; color: #475467; }
.table td, .table th { vertical-align: middle; }
.badge-soft { background: #eef2ff; color: #3730a3; border: 1px solid #c7d2fe; }
.section-card { scroll-margin-top: 82px; }
.form-section-title { font-weight: 700; font-size: 1rem; margin-bottom: .9rem; }
.gallery-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.gallery-item { background:#fff; border:1px solid var(--border-soft); border-radius:12px; overflow:hidden; }
.gallery-item img { width:100%; height:160px; object-fit:cover; display:block; }
.gallery-item .meta { padding: .6rem .75rem; font-size: .875rem; }
.sticky-side-nav { position: sticky; top: 88px; }
textarea { min-height: 100px; }
.small-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; }
.print-only { display: none; }
@media print {
  nav, footer, .no-print { display:none !important; }
  .print-only { display:block; }
  .card { box-shadow:none !important; border:1px solid #ddd !important; }
  body.bg-app { background:#fff !important; }
}
