/* Admin UI. Built entirely from the Alfred Baker design system's tokens
   (colors, spacing, typography, elevation, motion) so it reads as part of the
   same product as the public site, without pulling in a second styling
   approach or framework. */

body{background:var(--surface-page)}
a{color:var(--text-link)}
a:hover{color:var(--text-link-hover)}

.ab-admin-shell{min-height:100vh;display:flex;flex-direction:column}

.topbar{position:sticky;top:0;z-index:40;background:var(--surface-page);border-bottom:1px solid var(--border-default)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-height);gap:var(--space-6)}
.brand{display:flex;align-items:center;gap:var(--space-4);font-family:var(--font-display);font-weight:var(--weight-black);font-size:18px;color:var(--text-heading);text-decoration:none}
.brand:hover{color:var(--text-heading)}
.brand-mark{width:24px;height:24px;display:block}
.admin-nav{display:flex;align-items:center;gap:var(--space-7)}
.admin-nav a{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--text-muted);text-decoration:none}
.admin-nav a:hover{color:var(--text-heading)}
.admin-nav a.active{color:var(--text-heading)}
.topbar-right{display:flex;align-items:center;gap:var(--space-6)}
.topbar-email{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}

main.admin-main{flex:1;padding:var(--space-9) 0 var(--space-13)}

.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-8);margin-bottom:var(--space-8);flex-wrap:wrap}
.page-head h1{font-size:var(--text-h1)}
.page-head p{color:var(--text-muted);margin-top:var(--space-3)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-4);padding:10px 18px;border-radius:var(--radius-md);font-family:var(--font-sans);font-weight:600;font-size:var(--text-sm);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background 140ms var(--ease-out),border-color 140ms var(--ease-out);line-height:1}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-accent{background:var(--accent);color:var(--text-on-accent)}
.btn-accent:hover{background:var(--accent-hover);color:var(--text-on-accent)}
.btn-ghost{background:transparent;border-color:var(--border-default);color:var(--text-heading)}
.btn-ghost:hover{background:var(--surface-page-alt)}
.btn-danger{background:transparent;border-color:var(--status-danger);color:var(--status-danger)}
.btn-danger:hover{background:var(--ab-danger-100)}
.btn-sm{padding:6px 12px;font-size:var(--text-xs)}

/* Cards */
.card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-8)}

/* Forms */
.field{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-7)}
.field label{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.field .hint{font-size:var(--text-xs);color:var(--text-faint)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}

input[type=text],input[type=email],input[type=number],input[type=search],textarea,select{
  width:100%;font:inherit;font-size:var(--text-md);color:var(--text-body);
  background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);
  padding:10px 12px;transition:border-color 140ms var(--ease-out);
}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--ring-focus)}
textarea{resize:vertical;min-height:80px}
.checkbox-row{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm)}

/* File drop */
.drop{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start;padding:var(--space-6);border:1px dashed var(--border-default);border-radius:var(--radius-md);background:var(--surface-page);cursor:pointer;transition:border-color 140ms var(--ease-out),background 140ms var(--ease-out)}
.drop:hover,.drop.over{border-color:var(--ab-amber-600);background:var(--surface-page-alt)}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--ls-label);text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill);border:1px solid transparent}
.badge-public{background:var(--ab-success-100);color:var(--status-success)}
.badge-unlisted{background:var(--ab-info-100);color:var(--status-info)}
.badge-draft{background:var(--ab-warn-100);color:var(--status-warn)}

.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-11) 0}

/* Dashboard table */
.toolbar{display:flex;gap:var(--space-5);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-6)}
.toolbar input[type=search]{max-width:280px}
.toolbar select{max-width:180px}
.page-table{width:100%;border-collapse:collapse;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}
.page-table th{text-align:left;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default)}
.page-table td{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);vertical-align:middle;font-size:var(--text-sm)}
.page-table tr:last-child td{border-bottom:none}
.page-table tr:hover{background:var(--surface-page-alt)}
.page-table .slug-cell a{font-weight:600;color:var(--text-heading);text-decoration:none}
.page-table .slug-cell a:hover{color:var(--accent-hover)}
.page-table .muted{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--text-xs)}

/* Asset list */
.asset-list{display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}
.asset-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);font-family:var(--font-mono);font-size:var(--text-xs)}
.asset-row:last-child{border-bottom:none}
.asset-row .asset-meta{color:var(--text-faint)}

/* Toast */
.toast{display:flex;align-items:center;gap:var(--space-4);background:var(--surface-inverse);color:var(--text-on-inverse);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-7);font-size:var(--text-sm);box-shadow:var(--shadow-md)}
.toast-error{background:var(--status-danger);color:#fff}

/* Login */
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8)}
.login-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-7);text-align:center}
.gbtn{display:flex;align-items:center;justify-content:center;gap:var(--space-4);width:100%;padding:13px 16px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);font-family:var(--font-sans);font-size:var(--text-md);font-weight:600;color:var(--text-heading);cursor:pointer;transition:background 140ms,border-color 140ms}
.gbtn:hover{background:var(--surface-page-alt)}
.gmark{width:18px;height:18px;flex:none}

/* Draft preview iframe */
.preview-frame{width:100%;height:70vh;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff}
