html { font-size: 16px; }
body { margin: 0; }
.admin-shell { background: #f3f5f8; min-height: 100vh; }
.admin-sidebar { background: #111820; color: #dce3ea; min-height: 100vh; padding: 24px 18px; }
.admin-sidebar a { color: #dce3ea; display: block; padding: 10px 12px; border-radius: 8px; font-weight: 700; text-decoration: none; }
.admin-sidebar a:hover, .admin-sidebar a.active { background: rgba(237,28,36,.18); color: #fff; }
.admin-card { background: #fff; border: 1px solid #e3e8ec; border-radius: 12px; padding: 22px; box-shadow: 0 10px 28px rgba(18,32,43,.07); }
.admin-logo { background: #fff; border-radius: 10px; padding: 10px; margin-bottom: 24px; }
.form-label { font-weight: 700; }
.project-thumb { height: 220px; width: 100%; object-fit: cover; object-position: top; }
.page-hero p, .small-muted { color: #66788a; }
.validation-summary-errors { color: #b81218; }
.tag-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.login-card { max-width: 440px; margin: 7rem auto; }
.admin-image-preview { max-width: 220px; max-height: 130px; object-fit: contain; border: 1px solid #e3e8ec; border-radius: 8px; background: #f8fafc; padding: 8px; }
.admin-gallery-preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.admin-gallery-preview figure { margin: 0; border: 1px solid #e3e8ec; border-radius: 8px; overflow: hidden; background: #fff; }
.admin-gallery-preview img { width: 100%; height: 96px; object-fit: cover; object-position: top; display: block; }
.admin-gallery-preview figcaption { padding: 8px; color: #66788a; font-size: .88rem; }
