
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f8fafc;color:#0f172a}button,input,select,textarea{font:inherit}.hidden{display:none!important}.auth{min-height:100vh;background:#020617;display:grid;place-items:center;padding:24px}.authbox{width:min(430px,100%);background:#fff;border-radius:24px;padding:26px;box-shadow:0 25px 70px #0007}.logo{font-size:28px;font-weight:900;text-transform:uppercase;letter-spacing:-1px}.logo b{color:#facc15}.muted{color:#64748b;font-size:13px}.field{display:block;margin:13px 0}.field span{display:block;font-size:12px;font-weight:700;color:#475569;margin:0 0 6px}.input{width:100%;border:1px solid #e2e8f0;border-radius:12px;padding:11px 12px;outline:none;background:#fff}.input:focus{border-color:#facc15;box-shadow:0 0 0 3px #fef9c3}.btn{border:0;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer}.primary{background:#facc15;color:#0f172a}.dark{background:#0f172a;color:#fff}.ghost{background:#f1f5f9;color:#334155}.danger{background:#fee2e2;color:#b91c1c}.wide{width:100%}.msg{padding:10px 12px;border-radius:12px;font-size:13px;margin:10px 0}.err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#020617;color:#94a3b8;padding:20px 12px;display:flex;flex-direction:column}.sidebar .logo{color:#fff;padding:4px 10px 22px}.nav{display:grid;gap:5px}.nav button{width:100%;text-align:left;border:0;background:transparent;color:#94a3b8;padding:11px 12px;border-radius:11px;font-weight:700;cursor:pointer}.nav button.active{background:#facc15;color:#0f172a}.userbox{margin-top:auto;border-top:1px solid #1e293b;padding:15px 10px 0}.main{margin-left:245px}.top{height:62px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.content{max-width:1250px;margin:auto;padding:24px}.menu{display:none}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}.pagehead h1{margin:0;font-size:25px}.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid #e2e8f0;border-radius:17px;padding:18px}.card .label{font-size:12px;color:#64748b;font-weight:700}.card .value{font-size:24px;font-weight:900;margin-top:7px}.twocol{grid-template-columns:1fr 1fr}.toolbar{display:flex;gap:10px;margin:0 0 14px}.toolbar .input{flex:1}.tablewrap{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{background:#f8fafc;text-transform:uppercase;font-size:11px;color:#64748b;text-align:left;padding:12px;white-space:nowrap}td{padding:12px;border-top:1px solid #f1f5f9;white-space:nowrap}.badge{display:inline-block;border-radius:99px;padding:5px 8px;font-size:11px;font-weight:800;background:#fef3c7;color:#92400e}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.empty{background:#fff;border:1px dashed #cbd5e1;border-radius:16px;padding:40px;text-align:center;color:#94a3b8}.modalbg{position:fixed;inset:0;background:#0f172a88;z-index:50;display:grid;place-items:center;padding:18px}.modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:#fff}.modalbody{padding:18px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formgrid .full{grid-column:1/-1}.statusline{display:flex;align-items:center;justify-content:space-between;gap:10px}.alert{display:flex;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:15px;padding:14px;margin:8px 0}.small{font-size:12px}.mobileoverlay{display:none}
@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.sidebar{transform:translateX(-100%);transition:.2s;z-index:40}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu{display:block}.mobileoverlay.show{display:block;position:fixed;inset:0;background:#0006;z-index:30}.content{padding:16px}.twocol{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.formgrid .full{grid-column:auto}}
