.admin-body { background: #f4f7f6; }
.admin-login { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 20%, rgba(119,212,215,.35), transparent 30%), var(--navy-deep); }
.admin-login-card { width: min(430px,100%); padding: 40px; border-radius: 18px; background: white; box-shadow: 0 30px 80px rgba(0,0,0,.25); }
.admin-login-card > img { display: block; width: 78px; margin: 0 auto 14px; }
.admin-login-card h1 { margin: 8px 0; color: var(--navy); font-family: "Playfair Display",serif; }
.admin-login-card p { color: var(--muted); font-size: .82rem; }
.admin-login-card label { margin-top: 17px; }
.admin-login-card .primary { margin-top: 24px; }
.oauth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--muted); font-size: .72rem; }
.oauth-divider::before, .oauth-divider::after { content: ""; flex: 1; border-top: 1px solid var(--line); }
.google-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font-weight: 700; }
.google-btn:hover { background: #f8f8f8; }
.google-btn::before { content: ""; width: 20px; height: 20px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23FFC107' d='M43.6 20.1H42V20H24v8h11.3c-1.6 4.6-6 8-11.3 8a12 12 0 0 1 0-24c3.1 0 5.9 1.2 8.1 3l5.7-5.7A19.9 19.9 0 0 0 24 4a20 20 0 1 0 19.6 16.1z'/%3E%3Cpath fill='%230F9D58' d='m5.3 14.7 6.6 4.8A12 12 0 0 1 24 12c3.1 0 5.9 1.2 8.1 3l5.7-5.7A19.9 19.9 0 0 0 24 4a20 20 0 0 0-18.7 10.7z'/%3E%3Cpath fill='%234285F4' d='M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2A11.9 11.9 0 0 1 24 36c-5.3 0-9.7-3.4-11.3-8H6v5.8A20 20 0 0 0 24 44z'/%3E%3Cpath fill='%23EA4335' d='M6 26.2v-5.8l6.6 4.8A11.9 11.9 0 0 0 24 36c2.9 0 5.5-.8 7.8-2.2l-1.6-1.3-4.6-3.8z'/%3E%3C/svg%3E") 0 0 / contain no-repeat; }
.admin-login-card > a { display: block; margin-top: 20px; color: var(--blue); text-align: center; text-decoration: none; font-size: .75rem; }
.form-message { min-height: 18px; color: #b83d25 !important; }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 240px 1fr; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 18px; color: white; background: var(--navy-deep); }
.admin-sidebar .brand { color: white; margin-bottom: 35px; }
.admin-label { padding: 0 12px; color: #77b4c7; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.admin-sidebar nav { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.admin-nav, .admin-logout { padding: 12px; border: 0; border-radius: 8px; color: #bcd2dd; background: transparent; text-align: left; font-size: .78rem; font-weight: 700; }
.admin-nav:hover, .admin-nav.active { color: white; background: rgba(119,212,215,.13); }
.admin-logout { margin-top: auto; border: 1px solid rgba(255,255,255,.14); }
.admin-main { width: 100%; max-width: 1500px; padding: 32px 42px 70px; }
.admin-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; }
.admin-header h1 { margin: 4px 0 0; color: var(--navy); font-family: "Playfair Display",serif; font-size: 2.2rem; }
.admin-user { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: .74rem; }
.admin-user b { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: white; background: var(--navy); }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.stat-grid article { display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.stat-grid span { color: var(--muted); font-size: .72rem; }
.stat-grid strong { margin: 8px 0 2px; color: var(--navy); font-family: "Playfair Display",serif; font-size: 2rem; }
.stat-grid small { color: #9aa8ae; font-size: .62rem; }
.admin-panel { margin-top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.panel-heading h2 { margin: 5px 0 0; color: var(--navy); font-family: "Playfair Display",serif; }
.quality-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.quality-item { padding: 16px; border-radius: 10px; background: #f5f8f7; }
.quality-item strong { display: block; color: var(--navy); font-size: 1.3rem; }
.quality-item span { color: var(--muted); font-size: .68rem; }
.admin-toolbar { display: grid; grid-template-columns: 1fr 190px auto; gap: 12px; }
.admin-search { display: flex; align-items: center; padding-left: 13px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.admin-search input { width: 100%; padding: 12px; border: 0; outline: 0; }
.admin-toolbar select { margin: 0; }
.table-panel { overflow-x: auto; padding: 0; }
.table-panel .panel-heading { padding: 24px 24px 0; }
table { width: 100%; border-collapse: collapse; }
th { padding: 13px 17px; color: var(--muted); background: #f6f8f7; text-align: left; font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; }
td { padding: 14px 17px; border-top: 1px solid #edf1f1; color: #526a78; font-size: .72rem; }
td strong { display: block; color: var(--navy); }
.status-pill { display: inline-block; padding: 5px 8px; border-radius: 12px; font-size: .6rem; font-weight: 700; }
.status-published { color: #14775b; background: #e2f7ef; }
.status-draft { color: #94620b; background: #fff3d8; }
.status-archived { color: #697680; background: #edf0f1; }
.row-actions { display: flex; gap: 5px; }
.row-actions button { padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; background: white; font-size: .65rem; }
.categories-admin-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.category-admin-item { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; }
.category-admin-item span { font-size: 1.2rem; }
.category-admin-item strong { color: var(--navy); font-size: .76rem; }
.category-admin-item small { display: block; color: var(--muted); font-size: .62rem; }
.admin-dialog { width: min(760px, calc(100% - 30px)); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 30px 90px rgba(3,44,76,.3); }
.admin-dialog::backdrop { background: rgba(3,44,76,.62); backdrop-filter: blur(3px); }
.admin-dialog form { padding: 28px; }
.admin-dialog.small { width: min(440px,calc(100% - 30px)); }
.dialog-heading, .dialog-actions { display: flex; align-items: center; justify-content: space-between; }
.dialog-heading h2 { margin: 5px 0 20px; color: var(--navy); font-family: "Playfair Display",serif; }
.dialog-close { border: 0; background: none; font-size: 1.4rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.form-grid .span-2 { grid-column: 1/-1; }
.admin-dialog textarea { width: 100%; margin-top: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; resize: vertical; font: inherit; }
.admin-location-field { position: relative; }
.admin-location-suggestions { position: absolute; z-index: 10; top: 68px; left: 0; right: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: var(--shadow); }
.admin-location-option { width: 100%; padding: 9px 11px; border: 0; border-bottom: 1px solid #edf1f1; background: white; text-align: left; font-size: .68rem; }
.admin-location-option:hover { background: var(--aqua-soft); }
.admin-location-option strong { display: block; color: var(--navy); }
.admin-location-option small { color: var(--muted); }
.dialog-actions { justify-content: flex-end; gap: 8px; margin-top: 24px; }
@media (max-width: 950px) {
  .admin-shell { grid-template-columns: 74px 1fr; }
  .admin-sidebar .brand span, .admin-label, .admin-nav { font-size: 0; }
  .admin-nav { text-align: center; font-size: 1.1rem; }
  .admin-main { padding: 28px 20px 60px; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .quality-list, .categories-admin-list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .admin-shell { display: block; }
  .admin-sidebar { position: static; width: 100%; height: auto; flex-direction: row; align-items: center; padding: 10px; }
  .admin-sidebar .brand { margin: 0; }
  .admin-sidebar nav { margin: 0 0 0 auto; flex-direction: row; }
  .admin-logout { margin: 0 0 0 6px; font-size: 0; }
  .stat-grid, .quality-list, .categories-admin-list { grid-template-columns: 1fr; }
  .admin-toolbar { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
}
