:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172b3b;background:#f4f7fa}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:linear-gradient(180deg,#f7fafc 0,#eef3f7 100%)}
.topbar{height:68px;background:#183247;color:#fff;display:flex;align-items:center;padding:0 28px;gap:34px;box-shadow:0 2px 12px rgba(11,32,48,.14)}
.brand{font-size:21px;font-weight:800;letter-spacing:.2px;white-space:nowrap}.brand span{color:#61c98a}
nav{display:flex;gap:8px;flex:1}nav a{color:#dce7ee;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:14px}nav a:hover{background:rgba(255,255,255,.09)}
.userbox{display:flex;align-items:center;gap:10px;font-size:13px;color:#dce7ee}.userbox form{margin:0}
.linkbtn{border:0;background:transparent;color:#7ed79f;cursor:pointer;font-weight:700}
.container{max-width:1180px;margin:0 auto;padding:34px 28px 60px}
.login-wrap{min-height:calc(100vh - 136px);display:grid;place-items:center}
.login-card{width:min(430px,100%);background:#fff;border:1px solid #dde6ec;border-radius:18px;padding:38px;box-shadow:0 18px 45px rgba(25,55,75,.11)}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#2d9a5d;margin-bottom:12px}
h1{font-size:30px;line-height:1.2;margin:0 0 7px;color:#183247}h2{margin:0 0 12px;color:#183247}
.muted{color:#718394;margin:0}.login-form{display:grid;gap:18px;margin-top:30px}
label{display:grid;gap:8px;font-size:13px;font-weight:700;color:#405667}
input{width:100%;border:1px solid #cbd8e2;border-radius:10px;padding:13px 14px;font-size:15px;outline:none;background:#fff}
input:focus{border-color:#2e8cc5;box-shadow:0 0 0 3px rgba(46,140,197,.12)}
.primary{border:0;border-radius:10px;padding:13px 16px;background:#277bb1;color:#fff;font-weight:800;font-size:15px;cursor:pointer}.primary:hover{background:#216c9c}
.error{margin-top:20px;background:#fff0f0;border:1px solid #f1c6c6;color:#a73636;padding:11px 13px;border-radius:9px;font-size:13px}
.page-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.badge{background:#e1f5e8;color:#217a46;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.card,.panel{background:#fff;border:1px solid #dfe7ed;border-radius:14px;box-shadow:0 5px 18px rgba(23,50,71,.05)}
.card{padding:20px;min-height:112px}.card span{display:block;color:#7b8c99;font-size:13px;margin-bottom:16px}.card strong{font-size:18px;color:#1d3a4e}
.panel{padding:24px}.panel p{color:#536b7c;line-height:1.65;margin:0}
@media(max-width:850px){.cards{grid-template-columns:1fr 1fr}.topbar nav{display:none}.userbox{margin-left:auto}}
@media(max-width:520px){.container{padding:22px 15px}.topbar{padding:0 15px}.cards{grid-template-columns:1fr}.login-card{padding:28px 22px}.brand{font-size:18px}}

.top-gap{margin-top:20px}
.small{font-size:12px;display:block;margin-top:4px}
.source-list{display:grid;gap:10px;margin-top:14px}
.source-row{display:grid;grid-template-columns:1.5fr .7fr .7fr;gap:14px;align-items:center;padding:13px 0;border-top:1px solid #edf1f4}
.source-row:first-child{border-top:0}
.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800}
.status.ok{background:#e1f5e8;color:#217a46}.status.bad{background:#fff0f0;color:#a73636}.status.wait{background:#fff7dd;color:#8a6a10}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #e8eef2;white-space:nowrap}
th{color:#6d7f8d;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
@media(max-width:700px){.source-row{grid-template-columns:1fr}.source-row>div{margin-bottom:2px}}
