:root { color-scheme: light; }
* { -webkit-tap-highlight-color: transparent; }
body { min-width: 320px; }
.logo-mark { display:block; width:38px; height:38px; object-fit:contain; filter:drop-shadow(0 6px 9px rgba(37,99,235,.16)); }
.nav-link { display:flex; align-items:center; gap:12px; padding:11px 13px; border-radius:11px; color:#6b7280;
  font-size:14px; font-weight:500; transition:.18s ease; }
.nav-link:hover { color:#111827; background:#f9fafb; }
.nav-link.active { color:#1d4ed8; background:#eff6ff; font-weight:600; }
.nav-link svg { width:18px; height:18px; stroke-width:1.8; }
.mobile-link { min-width:60px; display:flex; flex-direction:column; align-items:center; gap:4px; color:#9ca3af; font-size:10px; font-weight:500; }
.mobile-link svg { width:21px; height:21px; stroke-width:1.8; }
.mobile-link.active { color:#2563eb; }
.icon-button { display:grid; place-items:center; width:38px; height:38px; border:1px solid #e5e7eb; border-radius:10px; background:white; color:#4b5563; transition:.18s ease; }
.icon-button:hover { color:#111827; border-color:#d1d5db; box-shadow:0 3px 10px rgba(17,24,39,.06); }
.icon-button svg { width:17px; height:17px; }
.card { border:1px solid #edf0f3; border-radius:16px; background:white; box-shadow:0 1px 2px rgba(17,24,39,.025); }
.stat-card { padding:22px; position:relative; overflow:hidden; }
.stat-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; }
.stat-icon svg { width:18px; height:18px; }
.status { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:600; white-space:nowrap; }
.status-matched { color:#047857; background:#ecfdf5; }
.status-missing { color:#b45309; background:#fffbeb; }
.status-transfer { color:#1d4ed8; background:#eff6ff; }
.status-excluded { color:#6b7280; background:#f3f4f6; }
.dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
.skeleton { position:relative; overflow:hidden; background:#eef0f3; border-radius:6px; }
.skeleton::after { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent); animation:shimmer 1.4s infinite; }
@keyframes shimmer { to { transform:translateX(100%); } }
.toast { display:flex; gap:10px; align-items:flex-start; width:min(340px,calc(100vw - 40px)); border:1px solid #d1fae5; border-radius:13px; background:white; padding:13px 14px; box-shadow:0 15px 35px rgba(17,24,39,.14); animation:slideIn .25s ease; }
@keyframes slideIn { from { opacity:0; transform:translateY(8px); } }
.table-scroll { overflow-x:auto; }
table { border-collapse:collapse; width:100%; }
th { padding:12px 20px; background:#fafafa; color:#6b7280; font-size:11px; font-weight:600; text-align:left; text-transform:uppercase; letter-spacing:.045em; }
td { padding:16px 20px; border-top:1px solid #f1f3f5; font-size:13px; }
tbody tr { transition:.15s ease; }
tbody tr:hover { background:#fafcff; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:10px; background:#2563eb; color:white; padding:10px 15px; font-size:13px; font-weight:600; box-shadow:0 5px 12px rgba(37,99,235,.18); }
.secondary-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid #e5e7eb; border-radius:10px; background:white; padding:9px 14px; font-size:13px; font-weight:600; }
.primary-button svg,.secondary-button svg { width:16px; height:16px; }
.primary-button:disabled,.secondary-button:disabled,.icon-button:disabled { opacity:.65; cursor:wait; }
.form-label { display:block; margin-bottom:6px; color:#4b5563; font-size:11px; font-weight:600; }
.form-input { width:100%; border:1px solid #e5e7eb; border-radius:10px; background:white; padding:10px 12px; font-size:13px; outline:none; transition:.15s ease; }
.form-input:focus { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(59,130,246,.1); }
.switch { position:relative; width:44px; height:24px; flex:none; border:0; border-radius:999px; background:#d1d5db; transition:.2s ease; cursor:pointer; }
.switch span { position:absolute; left:4px; top:4px; width:16px; height:16px; border-radius:50%; background:white; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:.2s ease; }
.switch[aria-checked="true"] { background:#2563eb; }
.switch[aria-checked="true"] span { transform:translateX(20px); }
.json-key { color:#7c3aed; }
.json-string { color:#047857; }
dialog[open] { animation:dialogIn .18s ease; }
@keyframes dialogIn { from { opacity:0; transform:translateY(8px) scale(.98); } }
@media (max-width:640px) {
  .card { border-radius:14px; }
  .stat-card { padding:18px; }
  td,th { padding-left:15px; padding-right:15px; }
}
