:root{--navy: #1f3864;--gray: #555;--line: #e2e5ea;--ok: #1e6b2e;--off: #99632a}*{box-sizing:border-box}body{margin:0;font-family:Calibri,system-ui,Arial,sans-serif;color:#222;background:#f6f7f9}.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}button{background:var(--navy);color:#fff;border:0;padding:8px 14px;border-radius:6px;cursor:pointer}button:hover{opacity:.92}.topbar{display:flex;align-items:center;gap:14px;background:var(--navy);color:#fff;padding:10px 18px}.topbar .brand{color:#fff;font-weight:700;text-decoration:none;font-size:18px}.topbar .spacer{flex:1}.topbar .role{background:#ffffff2e;padding:2px 8px;border-radius:10px;font-size:13px}.topbar .who{font-size:13px;opacity:.85}.content{padding:20px;max-width:1200px;margin:0 auto}h2{color:var(--navy)}.muted{color:var(--gray);font-weight:400}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.filters input,.filters select{padding:7px 9px;border:1px solid var(--line);border-radius:6px}.count{color:var(--gray);margin:6px 0}table.grid{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}table.grid th{background:var(--navy);color:#fff;text-align:left;padding:8px 10px;font-size:13px}table.grid td{padding:7px 10px;border-top:1px solid var(--line);font-size:14px}table.grid tr:hover td{background:#f0f3f9}.mono{font-family:Courier New,monospace}.badge{padding:2px 8px;border-radius:10px;font-size:12px;color:#fff}.badge.ok{background:var(--ok)}.badge.off{background:var(--off)}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin:14px 0}.card h3{margin-top:0;color:var(--navy)}dl.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 20px;margin:0}dl.kv dt{font-size:12px;color:var(--gray)}dl.kv dd{margin:0 0 6px;font-size:15px}.error{color:#b00020;background:#fdecef;border:1px solid #f5c2cb;padding:10px;border-radius:6px}.note{color:var(--gray);font-size:13px;font-style:italic;margin-top:10px}.navlink{color:#dfe6f3;text-decoration:none;font-size:14px;padding:2px 6px}.navlink:hover{color:#fff;text-decoration:underline}.pager{display:flex;align-items:center;gap:14px;margin-top:12px;color:var(--gray);font-size:13px}.bars{display:flex;flex-direction:column;gap:6px}.bar-row{display:flex;align-items:center;gap:10px}.bar-label{width:72px;font-size:13px;color:var(--gray)}.bar-track{flex:1;background:#eef1f6;border-radius:4px;height:16px;overflow:hidden}.bar-fill{height:100%;background:var(--navy)}.bar-val{width:56px;text-align:right;font-size:13px}.roster-head,.detail-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.roster-head h2{margin:0;flex:1}.btn-primary{background:var(--navy);color:#fff;text-decoration:none;padding:8px 14px;border-radius:6px;font-size:14px;display:inline-block}.btn-primary:hover{opacity:.92}.btn-secondary{background:#e2e5ea;color:#222;text-decoration:none;padding:8px 14px;border-radius:6px;font-size:14px;display:inline-block}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px 18px}.form-field{display:flex;flex-direction:column;gap:4px;font-size:13px}.form-field span{color:var(--gray)}.form-field input,.form-field select{padding:7px 8px;border:1px solid var(--line);border-radius:5px;font-size:14px;background:#fff}.form-field input:disabled{background:#f0f1f3;color:#888}.form-actions{display:flex;align-items:center;gap:12px;margin:18px 0}
