:root{--navy: #0C447C;--navy-hover: #0A3866;--gold: #EF9F27;--bg: #F0F4FB;--line: #DEE0E3}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Inter,Segoe UI,sans-serif;background:var(--bg);color:#1f2933}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:40px;height:40px;border:4px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:#fff;border-radius:12px;padding:28px 32px;width:360px;box-shadow:0 8px 30px #0c447c1f}.card h2{margin:0 0 16px;color:var(--navy);font-size:20px}.card h2 span{font-size:13px;color:#8a94a6;font-weight:400;margin-left:6px}.card label{display:block;font-size:13px;color:#555;margin-bottom:12px}.card input{width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px}.hint{font-size:12px;color:#8a94a6;margin:10px 0 0}button{cursor:pointer;border:none;border-radius:8px;font-size:14px;padding:9px 16px}button.primary{background:var(--navy);color:#fff}button.primary:hover{background:var(--navy-hover)}button.primary:disabled{opacity:.6}button.link{background:none;color:var(--navy);padding:2px 8px}button.link.danger{color:#c0392b}button.link:hover{text-decoration:underline}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:var(--navy);color:#fff}.brand{font-size:18px;font-weight:700}.brand span{font-size:12px;font-weight:400;opacity:.8;margin-left:6px}.who{font-size:13px}.who .link{color:#cfe0f5}.content{max-width:1100px;margin:24px auto;padding:0 20px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.toolbar h3{margin:0;color:var(--navy)}.tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 14px #0c447c0f}.tbl th,.tbl td{text-align:left;padding:11px 12px;font-size:13px;border-bottom:1px solid #eef1f5}.tbl th{background:#eef3f9;color:#445;font-weight:600}.tbl tr:hover td{background:#f2f6fb}.badge{padding:2px 8px;border-radius:10px;font-size:12px}.badge.ok{background:#e6f6ee;color:#1a7f4b}.badge.bad{background:#fdeaea;color:#c0392b}.msg,.err{padding:10px 14px;border-radius:8px;margin-bottom:12px;cursor:pointer;font-size:13px}.msg{background:#e6f6ee;color:#1a7f4b}.err{background:#fdeaea;color:#c0392b}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:12px;padding:24px 28px;width:560px;max-height:90vh;overflow:auto}.modal h3{margin:0 0 16px;color:var(--navy)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid label{font-size:12px;color:#555;display:block}.grid input,.grid select{width:100%;margin-top:4px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;font-size:14px}.systems{margin:16px 0}.systems .lbl{font-size:12px;color:#555;margin-bottom:8px}.checks{display:flex;flex-wrap:wrap;gap:10px 18px}.chk{font-size:13px;display:flex;align-items:center;gap:6px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
