*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,sans-serif;background:#f5f6fb;color:#20243a}
.layout{display:flex;min-height:100vh}
aside{width:245px;background:#11152a;color:#aeb4c8;padding:24px 14px}
.brand{font-size:22px;font-weight:800;color:#fff;padding:12px 14px 30px}
.nav{padding:14px;border-radius:9px;margin:5px 0;font-size:14px}
.nav.active{background:#2c3170;color:#fff}
main{flex:1;padding:35px;max-width:1600px}
h1{margin:0 0 7px;font-size:25px}
header p{color:#70758b;margin-top:0}
.card{background:#fff;border-radius:14px;padding:22px;margin-top:20px;box-shadow:0 5px 25px rgba(25,30,60,.06)}
.upload-row{display:flex;gap:12px;align-items:center}
input[type=file]{flex:1;border:1px dashed #c8ccdc;padding:12px;border-radius:9px;background:#fafbff}
button{border:0;border-radius:8px;padding:11px 16px;background:#5962d9;color:#fff;font-weight:700;cursor:pointer}
button:hover{filter:brightness(.95)}
button.secondary{background:#e9ebf8;color:#343a69}
button.danger{background:#f2dfe2;color:#9d2e3d}
.message{margin-top:14px;font-size:14px}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:20px}
.stat{background:#fff;border-radius:12px;padding:18px;box-shadow:0 5px 25px rgba(25,30,60,.05)}
.stat b{display:block;font-size:25px}.stat span{font-size:12px;color:#7b8095}
.toolbar{display:flex;gap:10px;margin-bottom:18px}
.toolbar input{flex:1;padding:12px;border:1px solid #dfe2ec;border-radius:8px}
select{padding:11px;border:1px solid #dfe2ec;border-radius:8px;background:#fff}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:#777d92;font-size:11px;padding:12px;border-bottom:1px solid #eceef5}
td{padding:14px 12px;border-bottom:1px solid #f0f1f6;vertical-align:middle}
.url{max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#555d75}
.badge{display:inline-block;padding:5px 9px;border-radius:20px;font-size:11px;font-weight:800}
.working{background:#dff5e7;color:#198246}.broken{background:#f9e0e3;color:#a92f40}
.invalid{background:#fff0d4;color:#9a6500}.error{background:#eee7f7;color:#6e3d91}.pending{background:#e9ebf2;color:#686e82}
.actions{display:flex;gap:6px}.actions button{padding:7px 9px;font-size:11px}
.pager{display:flex;justify-content:center;gap:15px;align-items:center;padding-top:20px}
@media(max-width:900px){aside{display:none}main{padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{flex-wrap:wrap}.toolbar input{min-width:100%}}
