:root{--bg: #0b0e14;--bg-elev: #141925;--bg-card: #161c2b;--border: #232b3d;--text: #e6ebf5;--muted: #8b96ad;--accent: #5b8cff;--accent-hover: #4378f0;--danger: #ff5d6c;--danger-bg: #2a1620;--success: #2ecc8f;--scrum: #5b8cff;--staging: #2ecc8f;--prod: #ff8a4c;--fi-green: #00d77a;--fi-blue: #005bff;--radius: 12px;--shadow: 0 8px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 800px at 70% -10%,#16203a 0%,var(--bg) 55%);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}code{font-family:SF Mono,JetBrains Mono,ui-monospace,Menlo,monospace}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.muted{color:var(--muted)}.small{font-size:12px}.mt{margin-top:24px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.login{width:360px;display:flex;flex-direction:column;gap:8px;text-align:center}.login .logo{font-size:34px}.login h1{margin:4px 0 0;font-size:22px}.login p{margin:0 0 16px}.login label{text-align:left;font-size:13px;color:var(--muted);margin-top:8px}input{width:100%;padding:11px 13px;background:var(--bg-elev);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:14px;outline:none;transition:border-color .15s}input:focus{border-color:var(--accent)}button{padding:11px 16px;background:var(--accent);color:#fff;border:none;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.login button{margin-top:16px}button.ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}button.ghost:hover{background:var(--bg-elev);color:var(--text)}button.danger{background:var(--danger)}button.danger:hover{background:#e8485a}button.tiny{padding:5px 10px;font-size:12px}button.block{width:100%;margin-top:12px}button.danger-outline{background:transparent;border:1px solid var(--danger);color:var(--danger)}button.danger-outline:hover{background:var(--danger-bg)}.confirm-flush{margin-top:12px;border:1px solid rgba(255,93,108,.35);background:var(--danger-bg);border-radius:10px;padding:14px}.confirm-flush input{margin:10px 0;border-color:var(--danger)}.confirm-flush .row button{flex:1;margin-top:0}.error{color:var(--danger);font-size:13px;background:var(--danger-bg);padding:9px;border-radius:8px}.app{max-width:1180px;margin:0 auto;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--border)}.brand{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.logo.small{font-size:18px}.user{display:flex;align-items:center;gap:14px}.badge{background:var(--bg-elev);border:1px solid var(--border);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;margin-left:4px}.badge.admin{color:var(--prod);border-color:var(--prod)}.env-switch{display:flex;gap:10px;margin:22px 0}.env{background:var(--bg-elev);border:1px solid var(--border);color:var(--muted);padding:9px 22px;border-radius:10px;font-weight:700;letter-spacing:.5px}.env:hover{color:var(--text)}.env.active.scrum{background:#5b8cff26;border-color:var(--scrum);color:var(--scrum)}.env.active.staging{background:#2ecc8f26;border-color:var(--staging);color:var(--staging)}.env.active.prod{background:#ff8a4c26;border-color:var(--prod);color:var(--prod)}.banner{padding:11px 14px;border-radius:9px;margin-bottom:18px;font-size:14px}.banner.success{background:#2ecc8f1f;color:var(--success);border:1px solid rgba(46,204,143,.3)}.banner.error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(255,93,108,.3)}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.card.audit{grid-column:1 / -1}@media (max-width: 820px){.grid{grid-template-columns:1fr}}h2{font-size:14px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 14px}.row{display:flex;gap:8px}.row input{flex:1}.row button{flex-shrink:0}.keys,.log{list-style:none;padding:0;margin:14px 0 0;max-height:360px;overflow-y:auto}.keys li{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:8px;font-size:13px}.keys li:nth-child(odd){background:var(--bg-elev)}.keys code{word-break:break-all}.pill{display:inline-block;margin-top:14px;padding:6px 14px;border-radius:20px;font-weight:700;font-size:13px}.pill.yes{background:#2ecc8f26;color:var(--success)}.pill.no{background:var(--bg-elev);color:var(--muted)}.log li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.tag{padding:2px 9px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase}.tag.scrum{background:#5b8cff26;color:var(--scrum)}.tag.staging{background:#2ecc8f26;color:var(--staging)}.tag.prod{background:#ff8a4c26;color:var(--prod)}.act{font-weight:600}.logo-badge{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:9px;padding:5px 10px;box-shadow:0 2px 10px #00000040}.logo-badge img{height:20px;display:block}.logo-badge.big{padding:10px 16px;border-radius:12px}.logo-badge.big img{height:30px}.login-bg{background:radial-gradient(700px 400px at 50% -5%,rgba(0,215,122,.1),transparent 60%),radial-gradient(900px 500px at 80% 110%,rgba(0,91,255,.1),transparent 55%)}.login{gap:10px;padding:32px 28px;border-radius:16px}.login .logo-badge.big{margin:0 auto 6px}.login h1{margin:4px 0 0;font-size:22px;letter-spacing:-.2px}.login button{margin-top:18px;background:linear-gradient(135deg,var(--fi-blue),#2f7bff)}.login button:hover{filter:brightness(1.08);background:linear-gradient(135deg,var(--fi-blue),#2f7bff)}.login-foot{text-align:center;margin:14px 0 0;letter-spacing:.3px}.brand-sep{color:var(--text);font-weight:700}.topnav{display:flex;gap:6px;margin-left:auto;margin-right:18px}.navlink{background:transparent;border:1px solid transparent;color:var(--muted);padding:7px 14px;border-radius:8px;font-weight:600}.navlink:hover{color:var(--text);background:var(--bg-elev)}.navlink.active{color:var(--text);background:var(--bg-elev);border-color:var(--border)}.page-title{font-size:20px;margin:22px 0 16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080ea8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:50;animation:fade .12s ease}.modal{width:440px;max-width:calc(100vw - 32px);background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:var(--shadow);animation:pop .13s ease}.modal h3{margin:0 0 12px;font-size:17px}.modal-body{color:var(--muted);font-size:14px;line-height:1.6;word-break:break-word}.modal-body code{color:var(--text)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.98)}}.levels{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 720px){.levels{grid-template-columns:1fr}}.level-card{display:flex;gap:12px;align-items:flex-start;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.level-card strong{font-size:14px}.level-card p{margin:3px 0 0;line-height:1.5}.level-badge{flex-shrink:0;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:13px;background:#5b8cff26;color:var(--scrum)}.level-badge.admin{background:#00d77a29;color:var(--fi-green)}.users-grid{grid-template-columns:.9fr 1.1fr;margin-top:22px}@media (max-width: 820px){.users-grid{grid-template-columns:1fr}}.userform{display:flex;flex-direction:column;gap:6px}.userform label{font-size:13px;color:var(--muted);margin-top:8px}.userform label.checkbox{flex-direction:row;display:flex;align-items:center;gap:8px;color:var(--text);margin-top:14px}.userform label.checkbox input{width:auto}.userform button{margin-top:16px}select{width:100%;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:14px;outline:none;cursor:pointer}select:focus{border-color:var(--accent)}.utable{width:100%;border-collapse:collapse;font-size:13px}.utable th{text-align:left;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px}.utable td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.utable td select{width:auto;padding:5px 8px}.utable tr.inactive{opacity:.5}.utable tr:last-child td{border-bottom:none}.note{margin-top:14px}
