*{box-sizing:border-box}body{margin:0;background:#f6f7f9;color:#171717;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#111827;color:#f9fafb;padding:24px}.sidebar nav{display:grid;grid-gap:12px;gap:12px;margin-top:24px}.logoutForm{margin-top:32px}.logoutForm button{width:100%;background:#374151}.content{padding:32px;min-width:0}.loginPage{display:grid;min-height:100vh;place-items:center;padding:24px}.loginPanel{width:min(100%,420px);background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.metric{display:block;font-size:34px;margin-top:8px}.hint,.label,.subtext{color:#6b7280}.subtext{display:block;font-size:12px;margin-top:4px}.success{color:#15803d}.danger{color:#b91c1c}.form{display:grid;grid-gap:12px;gap:12px;max-width:520px}.form details,.form label{display:grid;grid-gap:6px;gap:6px}.form summary{cursor:pointer}.form details input{margin-top:10px}.filters{max-width:none;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.filters label{display:grid;grid-gap:6px;gap:6px}button,input,select{border:1px solid #d1d5db;border-radius:6px;font:inherit;padding:10px 12px}button{background:#111827;color:#fff;cursor:pointer}table{width:100%;border-collapse:collapse;background:#fff;margin-bottom:28px;overflow-wrap:anywhere}td,th{border-bottom:1px solid #e5e7eb;padding:12px;text-align:left}.codeStatus,.statusBadge{display:inline-block;border-radius:999px;font-size:12px;font-weight:700;padding:4px 8px}.online,.unused{background:#dcfce7;color:#166534}.expired,.offline,.revoked{background:#fee2e2;color:#991b1b}.used{background:#dbeafe;color:#1e40af}.assignedList{display:grid;grid-gap:8px;gap:8px}.inlineAction{display:flex;gap:8px;align-items:center;justify-content:space-between}.inlineAction button{background:#7f1d1d;font-size:12px;padding:6px 8px}.successPanel{border-color:#86efac;margin-bottom:16px}.generatedCode{display:block;font-size:28px;margin-top:8px}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:20px}}