:root{--bg:#f5f7f8;--deep:#043058;--ink:#1a1f1d;--muted:#6b736f;--accent:#2374c8;--line:#e2e5e3;--card:#fff}*{box-sizing:border-box}body{background:var(--bg);color:var(--deep);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}.adminShell{max-width:1120px;margin:0 auto;padding:24px 20px 64px}.adminTop{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.adminTop h1{letter-spacing:-.6px;margin:4px 0 0;font-size:28px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#7d92a3;font-size:11px;font-weight:700}.adminNav{flex-wrap:wrap;gap:8px;display:flex}.adminNav a,.btn{color:var(--deep);font:inherit;cursor:pointer;background:#fff;border:1px solid #04305829;border-radius:10px;align-items:center;padding:8px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.adminNav a.active,.btn.primary{background:var(--deep);color:#fff;border-color:var(--deep)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.danger{color:#9b4b42;background:#fff;border-color:#e2c4c0}.card{background:#fff;border:1px solid #04305814;border-radius:16px;margin-bottom:16px;padding:16px 18px;box-shadow:0 1px 2px #0430580d}.card h2{margin:0 0 10px;font-size:16px}.hint{color:#7d92a3;margin:0 0 12px;font-size:13px}.filePick{margin:8px 0 12px;display:block}.metaLine{color:#5d7384;font-size:13px}.fileList{color:#5d7384;max-height:160px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;overflow:auto}.fileList li{border-bottom:1px solid #f0f3f5;padding:3px 0}.stats{flex-wrap:wrap;gap:8px;margin:0 0 14px;display:flex}.stat{background:#fff;border:1px solid #04305814;border-radius:12px;min-width:92px;padding:10px 12px}.stat strong{font-size:20px;display:block}.stat span{letter-spacing:.04em;text-transform:uppercase;color:#7d92a3;font-size:11px;font-weight:700}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #eef2f4;padding:8px}th{letter-spacing:.06em;text-transform:uppercase;color:#7d92a3;font-size:11px}.thumb{object-fit:cover;background:#eef3f6;border-radius:8px;width:56px;height:56px;display:block}.badge{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.badge.ready{color:#1b7a45;background:#e7f6ee}.badge.missing,.badge.dup,.badge.req{color:#9b4b42;background:#fdecea}.badge.notfound,.badge.ambig{color:#9a6b12;background:#fff4e0}.speciesPick{border:1px solid var(--line);width:100%;min-width:160px;font:inherit;border-radius:8px;padding:6px 8px}.linkOffer{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.progress{margin-top:10px;font-weight:700}.gate{background:#fff;border:1px solid #04305814;border-radius:16px;max-width:420px;margin:12vh auto;padding:24px}.gate label{letter-spacing:.05em;text-transform:uppercase;color:#7d92a3;margin-top:12px;font-size:11px;font-weight:700;display:block}.gate input{border:1px solid var(--line);width:100%;font:inherit;border-radius:8px;margin-top:5px;padding:11px}.tabs{gap:8px;margin-bottom:14px;display:flex}.tabs button{color:#7d92a3;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 4px;font-weight:700}.tabs button.active{color:var(--deep);border-bottom-color:var(--deep)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.photoGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.photoCard{background:#fff;border:1px solid #04305814;border-radius:16px;overflow:hidden;box-shadow:0 1px 2px #0430580d}.photoCard img{object-fit:cover;background:#eef3f6;width:100%;height:180px}.photoCard .body{padding:12px 14px 14px}.photoCard h3{margin:0;font-size:16px}.sci{color:#7d92a3;margin:2px 0 8px;font-size:12px;font-style:italic}.kv{color:#5d7384;margin:2px 0;font-size:12px}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.checkRow{align-items:center;gap:8px;padding:8px 14px 0;display:flex}.modal{z-index:40;background:#02102473;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal.open{display:flex}.modalCard{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:90vh;padding:18px;overflow:auto}.modalCard label{text-transform:uppercase;letter-spacing:.05em;color:#7d92a3;margin-top:10px;font-size:11px;font-weight:700;display:block}.modalCard input,.modalCard textarea,.modalCard select{border:1px solid var(--line);width:100%;font:inherit;border-radius:8px;margin-top:5px;padding:10px}#authMsg.authError{color:#9b4b42}[hidden]{display:none!important}
