*{box-sizing:border-box}body{margin:0;font:14px system-ui,sans-serif;background:#f3f5f9;color:#1b2430}
#app{display:flex;min-height:100vh}aside{width:230px;background:#16233b;color:#cfd8e8;padding:12px 0;position:sticky;top:0;height:100vh;overflow:auto}
aside h1{font-size:17px;margin:6px 16px 12px;color:#fff}aside a{display:block;padding:8px 16px;cursor:pointer}aside a small{display:block;font-size:11px;opacity:.55}aside a:hover,aside a.on{background:#24385c;color:#fff}
main{flex:1;padding:20px;min-width:0}.card{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 4px #0001;margin-bottom:16px}
.b,.b2{background:#2563eb;color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer;text-decoration:none;display:inline-block}.b2{background:#e5e9f0;color:#222}
.tw{overflow-x:auto;margin-top:10px}table{width:100%;border-collapse:collapse}th,td{padding:7px 9px;border-bottom:1px solid #e6eaf0;text-align:left}th{background:#f6f8fb;font-size:12px;text-transform:uppercase}
td a,.add,.x{color:#2563eb;cursor:pointer}label{display:block;margin:8px 0;font-size:12px;color:#556}input,select{width:100%;padding:7px;border:1px solid #cbd3df;border-radius:6px;margin-top:3px;font:inherit}
.ov{position:fixed;inset:0;background:#0007;display:flex;align-items:center;justify-content:center;z-index:9}.modal{background:#fff;border-radius:10px;padding:20px;width:760px;max-width:96vw;max-height:92vh;overflow:auto}
.act{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.lg{display:flex;min-height:100vh;align-items:center;justify-content:center}.lg .card{width:340px}
.bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.bar label{margin:0}.tot{font-weight:600;text-align:right}.er{color:#c00}.ok{color:#080}
.kp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.kp .card h2{margin:6px 0 0}.lt input,.lt select{min-width:80px}
@media(max-width:700px){#app{display:block}aside{width:100%;height:auto;position:static}}@media print{aside,.bar button,.b,.b2{display:none}}
