*{box-sizing:border-box}body{margin:0;font:15px system-ui,sans-serif;background:#f4f6f8;color:#1b2430}.hidden{display:none!important}
.login{display:grid;place-items:center;min-height:100vh}.box{background:#fff;padding:28px;border-radius:12px;width:320px;box-shadow:0 4px 20px #0001}.box h1{margin:0 0 12px;font-size:22px}
label{display:block;margin:10px 0;font-size:13px;color:#556}input,select{display:block;width:100%;padding:9px;margin-top:4px;border:1px solid #cdd3da;border-radius:6px;font:inherit}
.btn,.sm,.foot button{cursor:pointer;border:1px solid #cdd3da;background:#fff;border-radius:6px;padding:8px 14px;font:inherit;text-decoration:none;color:inherit;display:inline-block}.primary{background:#0f766e;color:#fff;border-color:#0f766e}.sm{padding:3px 9px;font-size:12px}
.hint{font-size:12px;color:#889}.app{display:flex;min-height:100vh}aside{width:220px;background:#12212e;color:#fff;padding:16px;display:flex;flex-direction:column}aside h1{font-size:18px;margin:0 0 16px}
nav a{display:block;padding:9px 10px;border-radius:6px;color:#c8d3dd;cursor:pointer}nav a.on,nav a:hover{background:#1f3a4d;color:#fff}.foot{margin-top:auto;display:grid;gap:6px;font-size:13px}.foot button{background:#1f3a4d;color:#fff;border:0}
main{flex:1;padding:22px;min-width:0}main h2{margin-top:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:10px}.card{background:#fff;padding:16px;border-radius:10px}.card span{display:block;font-size:12px;color:#667}.card b{font-size:22px}
.wrap{overflow-x:auto;background:#fff;border-radius:10px;margin:10px 0}table{width:100%;border-collapse:collapse}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid #eef0f3;white-space:nowrap}th{font-size:12px;color:#667;background:#fafbfc}
.low{color:#c62828}.empty{color:#889}.modal{position:fixed;inset:0;background:#0006;display:grid;place-items:center;padding:12px}.mbox{background:#fff;border-radius:12px;padding:18px;width:400px;max-width:100%;max-height:92vh;overflow:auto}.mh{display:flex;justify-content:space-between}.mh button{border:0;background:0;font-size:22px;cursor:pointer}
#toast{position:fixed;bottom:20px;right:20px;background:#12212e;color:#fff;padding:10px 16px;border-radius:8px;opacity:0;transition:.3s;z-index:9}#toast.show{opacity:1}
@media(max-width:700px){.app{flex-direction:column}aside{width:100%}nav{display:flex;flex-wrap:wrap}}
