/* ── Admin surface: the front end's world, tuned for tasks ─────────────── */
.ac-admin{
  --ink:#000;--paper:#fff;--canvas:#fafafa;--muted:#666;--faint:#999;--hair:#e8e8e8;--line:#d9d9d9;
  --danger:#b42318;--ok:#1f7a4d;--ease:cubic-bezier(.2,.7,.2,1);
  background:var(--canvas);color:var(--ink);font-family:'Space Mono','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',monospace;font-size:14px;line-height:1.6;
  min-height:70vh;padding:2.5rem 0 5rem;
}
.ac-admin ::selection{background:var(--ink);color:#fff}
.ac-admin :focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.ac-admin a{color:var(--ink)}
.ac-admin p{font-size:inherit}

/* micro label — the site's tracked caps */
.ac-eyebrow{font-size:.68rem;letter-spacing:4px;text-transform:uppercase;color:var(--faint);margin:0 0 .6rem}
.ac-eyebrow a{color:var(--faint);text-decoration:none;transition:color .18s var(--ease)}
.ac-eyebrow a:hover{color:var(--ink)}
.ac-eyebrow span{color:var(--ink)}

/* page head */
.ac-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;padding-bottom:1.6rem;border-bottom:1px solid var(--hair);margin-bottom:2.4rem}
.ac-title{font-family:Walika,serif;font-size:2.8rem;line-height:1;margin:0;color:var(--ink);letter-spacing:-.5px}
.ac-lede{color:var(--muted);font-size:.85rem;margin:.8rem 0 0;max-width:60ch}
.ac-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}

/* buttons */
.ac-admin .ac-btn,.ac-admin a.ac-btn{display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:#fff;border:1px solid var(--ink);padding:.78rem 1.5rem;font:inherit;font-size:.7rem;letter-spacing:3px;text-transform:uppercase;text-decoration:none;cursor:pointer;line-height:1;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),opacity .18s}
.ac-admin .ac-btn:hover{background:#222;color:#fff}
.ac-admin .ac-btn--ghost{background:transparent;color:var(--ink)}
.ac-admin .ac-btn--ghost:hover{background:var(--ink);color:#fff}
.ac-admin .ac-btn--danger{background:transparent;color:var(--danger);border-color:var(--danger)}
.ac-admin .ac-btn--danger:hover{background:var(--danger);color:#fff}
.ac-btn--block{width:100%;justify-content:center}
.ac-btn:disabled,.ac-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed}
.ac-btn .bi{font-size:.9rem}

/* icon buttons for row actions */
.ac-ibtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);background:var(--paper);color:var(--ink);text-decoration:none;cursor:pointer;font-size:.9rem;transition:border-color .18s var(--ease),background .18s var(--ease),color .18s var(--ease)}
.ac-ibtn:hover{border-color:var(--ink)}
.ac-ibtn--danger:hover{border-color:var(--danger);color:var(--danger)}
.ac-ibtn--on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ac-ibtn:disabled{opacity:.4;cursor:wait}
.ac-rowactions{display:inline-flex;gap:.4rem;align-items:center}

/* tables */
.ac-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--hair)}
.ac-table th{font-size:.64rem;letter-spacing:3px;text-transform:uppercase;color:var(--faint);font-weight:400;text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--hair);white-space:nowrap}
.ac-table td{padding:.85rem 1rem;border-bottom:1px solid var(--hair);vertical-align:middle;font-size:.85rem;font-variant-numeric:tabular-nums}
.ac-table tbody tr{transition:background .18s var(--ease)}
.ac-table tbody tr:hover{background:#f6f6f6}
.ac-table tbody tr:last-child td{border-bottom:0}
.ac-table .ac-date{white-space:nowrap}
.ac-table .ac-num{color:var(--faint);font-size:.75rem}
.ac-table a.ac-rowlink{text-decoration:none;font-weight:700}
.ac-table a.ac-rowlink:hover{text-decoration:underline;text-underline-offset:4px}
.ac-table .ac-right{text-align:right}
.ac-table .ac-muted{color:var(--muted)}
.ac-tablewrap{overflow-x:auto}
.ac-thumb{width:56px;height:40px;object-fit:cover;background:#eee;display:block;border:1px solid var(--hair)}
.ac-thumb--empty{display:flex;align-items:center;justify-content:center;color:#ccc;font-size:.8rem}

/* status */
.ac-pill{display:inline-flex;align-items:center;gap:.45rem;font-size:.66rem;letter-spacing:2px;text-transform:uppercase;white-space:nowrap}
.ac-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink)}
.ac-pill--off{color:var(--faint)}
.ac-pill--off::before{background:transparent;border:1px solid var(--faint)}
.ac-pill--ok::before{background:var(--ok)}
.ac-pill--warn{color:var(--danger)}
.ac-pill--warn::before{background:var(--danger)}

/* forms */
.ac-form{background:var(--paper);border:1px solid var(--hair);padding:2rem}
.ac-field{margin-bottom:1.4rem}
.ac-field label,.ac-label{display:block;font-size:.64rem;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.ac-field .ac-hint{font-size:.72rem;color:var(--faint);margin:.4rem 0 0}
.ac-admin .ac-input,.ac-admin select.ac-input,.ac-admin textarea.ac-input{display:block;width:100%;font:inherit;font-size:.9rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:.72rem .9rem;caret-color:var(--ink);transition:border-color .18s var(--ease);-webkit-appearance:none;appearance:none}
.ac-admin .ac-input:focus{border-color:var(--ink);outline:none;box-shadow:none}
.ac-admin .ac-input::placeholder{color:#aaa}
.ac-admin .ac-input:disabled{background:#f5f5f5;color:var(--muted)}
.ac-admin select.ac-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.4rem}
.ac-admin input[type=file].ac-input{padding:.55rem .9rem}
.ac-admin input[type=file]::file-selector-button{font:inherit;font-size:.64rem;letter-spacing:2px;text-transform:uppercase;background:var(--ink);color:#fff;border:0;padding:.45rem .9rem;margin-right:.9rem;cursor:pointer}
.ac-grid{display:grid;gap:1.4rem}
.ac-grid--2{grid-template-columns:1fr 1fr}
.ac-grid--3{grid-template-columns:1fr 1fr 1fr}
.ac-grid--main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:2rem;align-items:start}
.ac-formbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;margin-top:.4rem;border-top:1px solid var(--hair)}
.ac-formbar .ac-meta{font-size:.72rem;color:var(--faint)}

/* side panel (uploads, images) */
.ac-panel{background:var(--paper);border:1px solid var(--hair);padding:1.6rem}
.ac-panel+.ac-panel{margin-top:1.4rem}
.ac-panel h2{font-size:.64rem;letter-spacing:3px;text-transform:uppercase;color:var(--muted);font-weight:400;margin:0 0 1.1rem}
.ac-images{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.2rem}
.ac-images figure{position:relative;margin:0;aspect-ratio:1;overflow:hidden;border:1px solid var(--hair);background:#eee}
.ac-images img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s var(--ease)}
.ac-images figure:hover img{transform:scale(1.04)}
.ac-images form{position:absolute;inset:auto .4rem .4rem auto}
.ac-images .ac-ibtn{width:28px;height:28px;font-size:.75rem}
.ac-empty{color:var(--faint);font-size:.8rem;padding:1.4rem;border:1px dashed var(--line);text-align:center}

/* sectioned columns — the homepage "How I Work" rule */
.ac-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.ac-col{border-top:2px solid var(--ink);padding:1.6rem 2.2rem 1.8rem 0}
.ac-col+.ac-col{padding-left:2.2rem}
.ac-col .ac-big{font-family:Walika,serif;font-size:3.4rem;line-height:1;margin:.2rem 0 .5rem}
.ac-col .ac-sub{font-size:.78rem;color:var(--muted);margin:0}
.ac-col h3{font-size:1rem;font-weight:700;margin:.2rem 0 .6rem}
.ac-col p{color:var(--muted);font-size:.85rem;line-height:1.8;margin:0 0 1.1rem}
.ac-col .ac-links{display:flex;flex-direction:column;gap:.35rem}
.ac-col .ac-links a{font-size:.8rem;letter-spacing:1px;text-decoration:none;transition:padding-left .18s var(--ease)}
.ac-col .ac-links a:hover{padding-left:.3rem}
.ac-section{margin-top:3.2rem}
.ac-section h2{font-size:.68rem;letter-spacing:4px;text-transform:uppercase;color:var(--faint);font-weight:400;margin:0 0 1rem}
.ac-section .ac-sectionhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.ac-section .ac-sectionhead a{font-size:.78rem;letter-spacing:1px;text-decoration:none}

/* flash messages (shared with public pages) */
.ac-flash{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid #000;padding:.9rem 1.1rem;margin:0 0 1.6rem;font-family:'Space Mono',monospace;font-size:.82rem;color:#000}
.ac-flash::before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#000}
.ac-flash--ok::before{background:#1f7a4d}
.ac-flash--warn::before{background:#b42318}
.ac-flash button{margin-left:auto;background:none;border:0;font:inherit;font-size:.64rem;letter-spacing:2px;text-transform:uppercase;color:#999;cursor:pointer;padding:.2rem 0}
.ac-flash button:hover{color:#000}

/* auth (login / 2fa / reset) */
.ac-auth{max-width:440px;margin:3rem auto 4rem}
.ac-auth .ac-title{font-size:2.4rem;margin-bottom:.4rem}
.ac-auth .ac-form{padding:2.2rem}
.ac-auth .ac-foot{display:flex;justify-content:space-between;gap:1rem;margin-top:1.2rem;font-size:.72rem;color:var(--faint)}
.ac-auth .ac-foot a{color:var(--muted);text-decoration:none;letter-spacing:1px}
.ac-auth .ac-foot a:hover{color:var(--ink)}
.ac-code{font-size:1.6rem!important;letter-spacing:.5rem;text-align:center}
.ac-key{font-size:1.05rem;letter-spacing:3px;word-break:break-all;background:#f5f5f5;border:1px solid var(--hair);padding:.9rem 1rem;margin:.6rem 0 1rem}

/* responsive */
@media (max-width:991px){.ac-grid--main,.ac-grid--2,.ac-grid--3{grid-template-columns:1fr}.ac-cols{grid-template-columns:1fr}.ac-col,.ac-col+.ac-col{padding:1.4rem 0}.ac-title{font-size:2.2rem}}
@media (max-width:575px){.ac-admin{padding-top:1.6rem}.ac-form,.ac-panel{padding:1.3rem}.ac-images{grid-template-columns:repeat(2,1fr)}.ac-table th:nth-child(n+3):not(:last-child),.ac-table td:nth-child(n+3):not(:last-child){display:none}}
@media (prefers-reduced-motion:reduce){.ac-admin *{transition:none!important}}
