:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#172033;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}.hidden{display:none!important}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#111827;color:#fff;padding:26px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin:0 8px 34px}.brand div{display:flex;flex-direction:column}.brand small{color:#94a3b8;margin-top:3px}.logo{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#23d5d5,#ff316b);font-size:22px;font-weight:800}nav{display:grid;gap:8px}nav button,.ghost{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;font-size:15px}nav button.active,nav button:hover{background:#263247;color:white}.ghost{margin-top:auto}main{padding:28px 34px;min-width:0}header,.section-title{display:flex;align-items:center;justify-content:space-between;gap:18px}header{margin-bottom:24px}h1,h2,p{margin:0}header p,.section-title p{color:#697386;margin-top:6px}.primary,.button,form button{border:0;border-radius:9px;background:#2563eb;color:#fff;padding:11px 18px;font-weight:650;cursor:pointer;text-decoration:none}.primary:disabled{opacity:.55;cursor:wait}.stats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:16px;margin-bottom:18px}.stats article,.card{background:#fff;border:1px solid #e5eaf1;border-radius:15px;box-shadow:0 6px 18px rgba(19,33,68,.04)}.stats article{padding:20px}.stats span{color:#6b7280}.stats strong{display:block;font-size:31px;margin-top:8px}.ok{color:#159363}.bad{color:#dc3645}.warn{color:#d88300}.card{padding:20px;margin-top:18px}.section-title h2{font-size:18px}.empty{padding:30px;text-align:center;color:#7b8494}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:#647084;font-size:13px;font-weight:650;border-bottom:1px solid #e8edf3;padding:12px 10px}td{padding:13px 10px;border-bottom:1px solid #eef1f5;vertical-align:middle;font-size:14px}td a{color:#2563eb;text-decoration:none;display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.pill.matched{background:#e5f8ef;color:#13784f}.pill.mismatched{background:#fee9eb;color:#be2635}.pill.manual_review{background:#fff3d6;color:#9a6300}.pill.error{background:#edf0f4;color:#586174}.link,.icon{border:0;background:transparent;color:#2563eb;cursor:pointer}.filters{display:flex;gap:16px;align-items:center;margin-bottom:12px}.filters select,input,textarea{border:1px solid #d9e0e9;border-radius:9px;padding:10px 12px;font:inherit;background:#fff}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.22);width:min(560px,calc(100vw - 30px))}dialog::backdrop{background:rgba(15,23,42,.48)}dialog form{padding:24px;display:grid;gap:15px}label{display:grid;gap:7px;font-weight:600;color:#3c4658}label.check{display:flex;align-items:center}.actions{display:flex;justify-content:flex-end;gap:10px}.actions .ghost{margin:0;color:#48536a;background:#eef2f7}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 20%,#d9e9ff,transparent 35%),#f5f7fb}.login-card{width:min(390px,calc(100vw - 30px));padding:32px;display:grid;gap:16px}.error{color:#d6293a;font-size:14px}#toast{position:fixed;right:24px;bottom:24px;background:#172033;color:#fff;padding:12px 18px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.row-actions{display:flex;gap:6px}.row-actions button{border:0;background:#edf2f8;padding:7px 9px;border-radius:7px;cursor:pointer}.worker{display:flex;gap:16px;align-items:center;padding:22px}.spinner{width:24px;height:24px;border:3px solid #cdd9ef;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:850px){.shell{grid-template-columns:1fr}aside{position:sticky;top:0;z-index:2;flex-direction:row;align-items:center;padding:10px}.brand{margin:0 12px 0 0}.brand small{display:none}nav{display:flex;overflow:auto}.ghost{margin:0 0 0 auto}.stats{grid-template-columns:repeat(2,1fr)}main{padding:20px 14px}}
