:root{font-family:Segoe UI,Arial,sans-serif;color:#153149;background:#eef3f8;font-size:15px}*{box-sizing:border-box}body{margin:0}main{max-width:1800px;margin:auto;padding:30px}h1{font-size:28px;line-height:1.2}p{line-height:1.6}.top{background:#162e49;color:white;padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.top p{margin:4px 0 0;font-size:13px}.tools{display:flex;flex-wrap:wrap;align-items:end;gap:14px;background:white;padding:20px;border:1px solid #cbd5e1;border-radius:10px}label{display:grid;gap:7px;font-size:13px}input,select,button{font:inherit;border-radius:6px;min-height:42px;padding:8px 12px;border:1px solid #aab9ca}input,select{background:#fff;color:#153149}button{background:#254f87;color:white;cursor:pointer;font-weight:600}button.secondary{background:#fff;color:#153149}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid #2875db;outline-offset:3px}.scroll{overflow:auto;max-height:68vh;background:white;border:1px solid #cbd5e1;border-radius:10px}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}th,td{padding:12px 9px;border-bottom:1px solid #d7e0eb;text-align:left;vertical-align:top}thead th{position:sticky;top:0;z-index:2;background:#eaf0f6;white-space:nowrap}tbody tr:nth-child(even){background:#f5f7fa}.name{position:sticky;left:0;background:#fff;min-width:190px;z-index:1}small{display:block;margin-top:5px;font-size:11px}.day{text-align:center;min-width:44px}.code{display:inline-flex;white-space:nowrap;min-width:28px;justify-content:center;padding:4px 6px;font-size:11px;font-weight:700;border:1px solid #b8c1d0;border-radius:5px;line-height:1.3;background:#e0e7ff;color:#312e81}.on{background:#bbf7d0;color:#14532d}.off{background:#e5e7eb;color:#374151}.c{background:#e9d5ff;color:#581c87}.s{background:#fef08a;color:#713f12}.m{background:#bfdbfe;color:#1e3a8a}.rl{background:#9810fa;color:white}.ib,.izin{background:#fed7aa;color:#7c2d12}.it{background:#b93806;color:#fff}.a{background:#fee2e2;color:#991b1b}.spd{background:#cffafe;color:#155e75}.sakit{background:#fce7f3;color:#831843}.wfh{background:#ccfbf1;color:#134e4a}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.paging{display:flex;gap:15px;align-items:center;margin:18px 0}.plan{opacity:.55;border:1px dashed #bdc6d1;padding:3px;display:block;font-size:10px}.issue{border-left:4px solid #e8a329;background:white;padding:16px;margin:12px 0}.issue.error{border-color:#c02626}.expired td,.expired th{background:#fee2e2}.soon td,.soon th{background:#fef3a0}.warning td,.warning th{background:#ffdfb5}.login{min-height:100vh;display:grid;place-items:center}.loginPanel{width:min(440px,94vw);background:white;border:1px solid #cbd5e1;border-radius:12px;padding:32px}.loginPanel form{display:grid;gap:18px}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:9;background:white;padding:10px}dialog{max-width:90vw;max-height:90vh;overflow:auto;border:1px solid #aab9ca;border-radius:10px;padding:20px}dialog::backdrop{background:#102030aa}dialog img{display:block;max-width:80vw;max-height:70vh;margin-top:15px}.photo{display:block;background:transparent;border:0;padding:3px;margin:auto;min-height:0}.photo img{width:28px;height:34px;object-fit:cover}.evidence{text-decoration:underline dotted;text-underline-offset:3px;min-height:0}@media(max-width:700px){main{padding:16px}.top{padding:16px}.tools{display:grid;grid-template-columns:1fr 1fr}.tools label{min-width:0}input,select{max-width:100%}.name{min-width:155px}th,td{padding:9px 6px}}

.monitorAccount{display:flex;align-items:center;gap:12px}.monitorAvatar{display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff35;border-radius:10px;background:#ffffff12;color:#e6edf7;font-size:12px;font-weight:700}.monitorIdentity{display:grid;gap:4px;min-width:0}.monitorIdentity strong{font-size:13px}.monitorIdentity small{margin:0;color:#b8ccdf;font-size:11px}.monitorAccount .secondary{margin-left:6px;min-height:36px;font-size:12px}

.loginLogo{display:block;object-fit:contain;margin:0 auto 20px;background:white;border-radius:12px;padding:4px}
