*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f4f7fb;color:#172033}aside{position:fixed;left:0;top:0;bottom:0;width:250px;background:#0b1220;color:#fff;padding:22px 14px;overflow:auto}.brand{font-weight:800;font-size:17px;margin-bottom:22px}nav a{display:block;color:#d7deea;text-decoration:none;padding:10px 12px;border-radius:8px;margin:2px 0}nav a:hover{background:var(--accent,#1f6feb);color:#fff}.navgroup{font-size:11px;color:#7f8ba0;margin:20px 12px 6px}main{margin-left:250px;min-height:100vh}header{background:#fff;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e9f0}h1{font-size:23px;margin:0 0 4px}h2{margin-top:0}.content{padding:25px}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.card,.panel{background:#fff;border:1px solid #e3e8f0;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000008}.card strong{display:block;font-size:30px;margin-top:12px}.panel{margin-top:20px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.btn,button{background:var(--accent,#1f6feb);color:white;border:0;border-radius:7px;padding:9px 13px;text-decoration:none;cursor:pointer}.inline{display:flex;gap:6px}.inline input{max-width:240px}input,select{width:100%;padding:9px;border:1px solid #cfd7e3;border-radius:7px;margin:5px 0 12px;background:#fff}label{display:block;font-weight:600;margin-top:8px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid #e7ebf1;padding:9px;text-align:left;white-space:nowrap}th{background:#f6f8fb}.alert{padding:10px;border-radius:7px;margin:10px 0}.danger{background:#fee2e2;color:#991b1b}.login{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#eef4ff,#f7fafc)}.loginbox{width:min(410px,92%);background:#fff;padding:30px;border-radius:16px;box-shadow:0 10px 40px #0002}.loginbox button{width:100%;margin-top:8px}@media(max-width:900px){aside{position:relative;width:100%;height:auto}main{margin-left:0}.cards{grid-template-columns:repeat(2,1fr)}}@media print{aside,header,.toolbar{display:none!important}main{margin:0}.content{padding:0}.panel{box-shadow:none;border:0}.tablewrap{overflow:visible}body{background:#fff}@page{margin:10mm}}
.gridform{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px;margin:15px 0}.gridform label{font-size:12px}.gridform .btn{grid-column:1/-1;width:max-content}@media(max-width:700px){.gridform{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}
@page{size:auto;margin:10mm}
