/* RLP_CSS_V2 */
:root { --brand: #1d4ed8; --bg:#f4f6fa; --card:#ffffff; --ink:#1a2233; --muted:#68738a; --line:#e3e8f0; --ok:#15803d; --warn:#b45309; --bad:#b91c1c; }
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background:var(--bg); color:var(--ink); }
a { color: var(--brand); text-decoration: none; }
.topbar { background: var(--brand); color:#fff; padding: 12px 18px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.topbar .logo { height: 34px; }
.topbar h1 { font-size: 18px; margin:0; font-weight:600; }
.topbar nav { margin-left:auto; display:flex; gap:14px; flex-wrap:wrap; }
.topbar nav a { color:#fff; opacity:.92; font-size:14px; }
.topbar nav a:hover { opacity:1; text-decoration:underline; }
.wrap { max-width: 980px; margin: 24px auto; padding: 0 16px; }
.wrap.narrow { max-width: 640px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; margin-bottom:18px; }
.card h2 { margin-top:0; font-size:17px; }
label { display:block; font-size:13px; font-weight:600; margin: 12px 0 4px; color:var(--muted); }
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=password], input[type=number], input[type=color], select, textarea {
  width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:7px; font-size:15px; background:#fff; color:var(--ink); }
textarea { min-height: 96px; resize: vertical; }
.btn { display:inline-block; background: var(--brand); color:#fff; border:0; border-radius:7px; padding:10px 18px; font-size:15px; cursor:pointer; margin-top:14px; }
.btn.secondary { background:#fff; color:var(--brand); border:1px solid var(--brand); }
.btn.danger { background: var(--bad); }
.btn.small { padding:5px 10px; font-size:13px; margin-top:0; }
.error { background:#fdecec; border:1px solid #f5c2c2; color:var(--bad); padding:10px 12px; border-radius:7px; margin-bottom:12px; }
.refbox { font-size: 26px; font-weight:700; letter-spacing:2px; background:#eef2fb; border:2px dashed var(--brand); border-radius:10px; padding:16px; text-align:center; margin:14px 0; }
.badge { display:inline-block; padding:2px 9px; border-radius: 999px; font-size:12px; font-weight:600; background:#e8ecf5; color:var(--muted); text-transform:uppercase; }
.badge.open, .badge.in_storage { background:#e5f0ff; color:var(--brand); }
.badge.matched { background:#fef3c7; color:var(--warn); }
.badge.claimed, .badge.released { background:#dcfce7; color:var(--ok); }
.badge.disposed, .badge.expired, .badge.closed { background:#f1f1f1; color:#666; }
.badge.donated { background:#ede9fe; color:#6d28d9; }
table { width:100%; border-collapse: collapse; font-size:14px; }
th, td { text-align:left; padding: 8px 10px; border-bottom:1px solid var(--line); vertical-align: top; }
th { font-size:12px; text-transform:uppercase; color:var(--muted); }
tr:hover td { background:#f8fafd; }
.grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap:14px; }
.stat { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
.stat .n { font-size:28px; font-weight:700; color:var(--brand); }
.stat .l { font-size:12px; color:var(--muted); text-transform:uppercase; }
.filters { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:14px; }
.filters > div { flex:1; min-width:140px; }
.muted { color:var(--muted); font-size:13px; }
.kv { display:grid; grid-template-columns: 160px 1fr; gap:6px 14px; font-size:14px; }
.kv dt { color:var(--muted); font-weight:600; }
.kv dd { margin:0; }
.photos { display:flex; gap:10px; flex-wrap:wrap; }
.photos img { height:110px; border-radius:8px; border:1px solid var(--line); }
.due { color: var(--bad); font-weight:600; }
.footer { text-align:center; color:var(--muted); font-size:12px; margin: 30px 0 20px; }
.hp { position:absolute; left:-9999px; }
@media (max-width: 640px){ .kv{grid-template-columns:1fr;} .topbar nav{width:100%;} }
