/* ============================================================
   SNOOF Admin — same design language as the public site
   ============================================================ */
:root{
  --bg:#FAF8F3; --cream:#F3EEE2; --beige:#E9E1CF;
  --olive:#7A8B63; --olive-deep:#66754F; --olive-dark:#4C573B;
  --sage:#ABB795; --charcoal:#2E2C25; --text:#3B3931; --muted:#7C7669;
  --card:#FFFEFA; --line:rgba(46,44,37,.09);
  --shadow-s:0 2px 10px rgba(46,44,37,.05);
  --shadow-m:0 14px 44px rgba(46,44,37,.09);
  --shadow-l:0 24px 70px rgba(46,44,37,.14);
  --amber:#C99A3C; --green:#66754F; --orange:#C97B3C; --red:#B4533F;
  --serif:"Fraunces", Georgia, serif;
  --sans:"Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:520;letter-spacing:-.015em;color:var(--charcoal)}
.kicker{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:10px}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.rise{animation:rise .55s cubic-bezier(.2,.65,.3,1) both}
.rise.d1{animation-delay:.07s}.rise.d2{animation-delay:.14s}.rise.d3{animation-delay:.21s}
.sic{width:36px;height:36px;flex:none;border-radius:11px;background:var(--cream);display:inline-flex;align-items:center;justify-content:center}
.sic svg{width:18px;height:18px;stroke:var(--olive-deep);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){.rise{animation:none}}

.wrap{max-width:1240px;margin:0 auto;padding:0 28px}

/* topbar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(250,248,243,.85);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:14px 0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar .brand{display:flex;align-items:center;gap:12px}
.topbar .brand .logo{height:20px;width:auto;display:block}
.topbar .brand .tag{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-deep);background:rgba(122,139,99,.12);padding:4px 10px;border-radius:999px}
.topbar .who{display:flex;align-items:center;gap:14px;font-size:13.5px;color:var(--muted)}

/* buttons — mirrors public site */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 22px;font-size:14px;font-weight:600;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,background .25s;white-space:nowrap}
.btn:active{transform:scale(.985)}
.btn-primary{background:var(--olive);color:#FDFCF8;box-shadow:0 6px 20px rgba(122,139,99,.25)}
.btn-primary:hover{background:var(--olive-deep);transform:translateY(-1px)}
.btn-quiet{background:var(--cream);color:var(--charcoal)}
.btn-quiet:hover{background:var(--beige)}
.btn-green{background:var(--green);color:#FDFCF8}
.btn-green:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-orange{background:var(--orange);color:#FDFCF8}
.btn-orange:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-red{background:var(--red);color:#FDFCF8}
.btn-red:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn[disabled]{opacity:.5;pointer-events:none}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-s)}

/* stat cards */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:30px 0}
.stat{padding:24px 26px;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow-m)}
.stat .num{font-family:var(--serif);font-size:2.35rem;line-height:1.1;color:var(--charcoal)}
.stat .lbl{font-size:12.5px;font-weight:600;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:7px}
.stat .dot{width:8px;height:8px;border-radius:50%}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}}

/* controls */
.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.controls input[type=search]{flex:1;min-width:220px;padding:12px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font:inherit;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}
.controls input[type=search]:focus{border-color:var(--olive);box-shadow:0 0 0 4px rgba(122,139,99,.13)}
.fchip{padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font-size:13px;font-weight:600;color:var(--muted);transition:.2s}
.fchip:hover{border-color:var(--sage)}
.fchip.on{background:var(--olive);border-color:var(--olive);color:#FDFCF8}
.controls select{padding:11px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font:inherit;font-size:13.5px;color:var(--text);outline:none}

/* table */
.tablewrap{overflow-x:auto;border-radius:20px}
table{width:100%;border-collapse:collapse;font-size:14px;background:var(--card)}
thead th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:16px 20px;border-bottom:1px solid var(--line);white-space:nowrap;background:#FBF8F1}
tbody td{padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr{cursor:pointer;transition:background .15s}
tbody tr:hover{background:var(--cream)}
tbody tr:last-child td{border-bottom:none}
.dogthumb{width:50px;height:50px;border-radius:14px;object-fit:cover;background:var(--beige);box-shadow:var(--shadow-s)}
.dogthumb.ph{display:flex;align-items:center;justify-content:center;font-size:18px}
.tname{font-weight:600;color:var(--charcoal)}
.tsub{font-size:12.5px;color:var(--muted)}

/* status pills */
.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.pill .d{width:7px;height:7px;border-radius:50%}
.pill-pending{background:rgba(201,154,60,.13);color:#8A6A26}.pill-pending .d{background:var(--amber)}
.pill-approved{background:rgba(102,117,79,.13);color:var(--olive-dark)}.pill-approved .d{background:var(--green)}
.pill-awaiting_info{background:rgba(201,123,60,.13);color:#8A5426}.pill-awaiting_info .d{background:var(--orange)}
.pill-declined{background:rgba(180,83,63,.12);color:#84392A}.pill-declined .d{background:var(--red)}

/* review page */
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
@media(max-width:900px){.review-grid{grid-template-columns:1fr}}
.section{padding:26px 28px}
.section h3{font-size:1.15rem;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 16px;font-size:14px}
.kv dt{color:var(--muted);font-size:13px}
.kv dd{color:var(--charcoal);font-weight:500;word-break:break-word}
.docthumb{border:1.5px solid var(--line);border-radius:14px;overflow:hidden;cursor:zoom-in;max-width:260px;transition:transform .25s,box-shadow .25s;background:var(--cream)}
.docthumb:hover{transform:translateY(-2px);box-shadow:var(--shadow-m)}
.docthumb img{width:100%;height:170px;object-fit:cover}
.doc-fallback{display:flex;align-items:center;gap:10px;padding:14px;font-size:13.5px;font-weight:600;color:var(--olive-dark)}
.photo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.photo-wall .pw{aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:zoom-in;background:var(--beige)}
.photo-wall img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.photo-wall .pw:hover img{transform:scale(1.05)}
video{width:100%;border-radius:14px;background:#000;max-height:420px}
.mapframe{width:100%;height:260px;border:0;border-radius:14px}
.privnote{display:flex;gap:10px;align-items:flex-start;background:var(--cream);border-radius:12px;padding:12px 14px;font-size:12.5px;color:var(--muted);margin-top:14px;line-height:1.55}

/* checklist + notes */
.checkitem{display:flex;gap:12px;align-items:center;padding:11px 14px;border:1.5px solid var(--line);border-radius:12px;margin-bottom:9px;cursor:pointer;font-size:14px;font-weight:500;transition:.2s}
.checkitem:hover{border-color:var(--sage)}
.checkitem.on{border-color:var(--olive);background:rgba(122,139,99,.06)}
.checkitem input{width:17px;height:17px;accent-color:var(--olive)}
.note{background:var(--cream);border-radius:12px;padding:13px 16px;margin-bottom:10px;font-size:14px}
.note .meta{font-size:11.5px;color:var(--muted);margin-top:5px}
.notebox{width:100%;padding:13px 15px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font:inherit;font-size:14px;resize:vertical;outline:none;transition:border-color .2s}
.notebox:focus{border-color:var(--olive)}

/* action bar */
.actionbar{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding:22px 28px;position:sticky;bottom:16px;background:rgba(255,254,250,.9);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-m);margin:26px 0 40px}

/* modal + lightbox */
.overlay{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(28,26,18,.5);backdrop-filter:blur(6px)}
.overlay.open{display:flex}
.panel{background:var(--bg);border-radius:24px;max-width:480px;width:100%;padding:34px;box-shadow:var(--shadow-l);animation:pop .4s cubic-bezier(.2,.9,.3,1.05)}
.panel h3{font-size:1.3rem;margin-bottom:8px}
.panel p{font-size:14px;color:var(--muted);margin-bottom:16px}
.panel textarea{width:100%;min-height:110px}
.panel .row{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.lightbox{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(20,18,12,.85);cursor:zoom-out;padding:30px}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:92vh;border-radius:12px;box-shadow:var(--shadow-l)}
@keyframes pop{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--charcoal);color:#FAF8F3;padding:13px 22px;border-radius:999px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:.35s;z-index:400;box-shadow:var(--shadow-l)}
.toast.show{opacity:1;transform:translateX(-50%)}

/* auth screens */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}
.auth::before{content:"";position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(122,139,99,.14),transparent 65%);top:-240px;right:-160px}
.auth::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(171,183,149,.16),transparent 65%);bottom:-220px;left:-140px}
.auth .card{position:relative;z-index:2}
.auth .card{max-width:440px;width:100%;padding:52px 48px;border-radius:28px;box-shadow:var(--shadow-m)}
.auth .logo{height:34px;width:auto;margin:0 auto 30px;display:block}
.auth h1{font-size:1.6rem;text-align:center;margin-bottom:6px}
.auth .sub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--charcoal);margin-bottom:6px}
.field input{width:100%;padding:13px 15px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font:inherit;font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus{border-color:var(--olive);box-shadow:0 0 0 4px rgba(122,139,99,.13)}
.err{display:none;background:rgba(180,83,63,.1);border:1px solid rgba(180,83,63,.3);color:#84392A;border-radius:12px;padding:12px 15px;font-size:13.5px;margin-bottom:16px}
.err.show{display:block}
.pagehead{margin-top:38px}
.pagehead h1{font-size:clamp(1.7rem,2.6vw,2.15rem)}
.pagehead .sub{color:var(--muted);font-size:14.5px;margin-top:6px}
.empty{padding:70px 20px;text-align:center;color:var(--muted)}
.empty .paw{font-size:34px;margin-bottom:12px}
.empty .big{font-family:var(--serif);font-size:1.3rem;color:var(--charcoal);margin-bottom:8px}
.backlink{font-size:13.5px;font-weight:600;color:var(--olive-deep)}
.backlink:hover{text-decoration:underline}
