:root{color-scheme:dark;--crust: #08080a;--mantle: #101014;--base: #141419;--surface0: #1b1b22;--surface1: #24242c;--surface2: #45475a;--text: #d4d0dc;--subtext: #b9b5c3;--overlay: #a29eaa;--lavender: #d69aff;--mauve: #c77dff;--blue: #6ba8ff;--green: #6bff95;--red: #ff6b6b;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--crust);color:var(--text);-webkit-font-smoothing:antialiased}a,button,input,select{transition:color .3s var(--ease),background-color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);-webkit-tap-highlight-color:transparent}a{color:var(--lavender)}a:hover{color:var(--blue)}*:focus-visible{outline:2px solid #b4befe;outline-offset:2px}code{font:.9em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--subtext)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a7acd740;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#b4befe73}.mut,.empty{color:var(--overlay)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion){*{animation:none!important;transition:none!important}}body.picker{font-size:16px;display:flex;flex-direction:column;align-items:center;padding:10vh 1rem 4rem;background:radial-gradient(60rem 30rem at 50% -10%,#c77dff1f,transparent 70%),var(--crust)}.picker #app{width:100%;display:flex;flex-direction:column;align-items:center}.picker-brand{display:flex;align-items:center;gap:.75rem;margin:0 0 1.5rem;color:#fff;font-size:2rem;font-weight:800;letter-spacing:-.02em;animation:rise .8s var(--ease) both}.picker-brand img{width:3rem;height:3rem}.picker h2{margin:0 0 .4rem;font-size:1.75rem;font-weight:800;letter-spacing:-.02em;color:#fff;animation:rise .8s var(--ease) both}.picker p.sub{margin:0 0 2.5rem;color:var(--subtext);text-align:center;max-width:34rem;animation:rise .8s .1s var(--ease) both}.picker p.sub strong{color:var(--lavender)}.picker form{display:grid;gap:1rem;width:100%;max-width:44rem;padding:1.25rem;background:var(--mantle);border:1px solid var(--base);border-radius:12px;box-shadow:0 10px 30px #0009;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));animation:rise .8s .2s var(--ease) both}.picker button{all:unset;cursor:pointer;padding:1rem 1.1rem;border:1px solid var(--surface0);border-radius:8px;transition:background-color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}.picker button:hover,.picker button:focus-visible{background:var(--base);border-color:var(--lavender);transform:translate(2px)}.picker button b{display:block;font-size:1.05rem;font-weight:700;color:#fff}.picker button span{display:block;color:var(--overlay);font-size:.9rem;margin-top:.2rem}header{position:sticky;top:.5rem;z-index:10;margin:.5rem;display:flex;gap:.25rem;align-items:center;padding:.5rem;background:#101014e6;border:1px solid var(--base);border-radius:6px;box-shadow:0 10px 25px #0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}header a.brand{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;margin-right:.75rem;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:#fff}header a.brand:hover{background:transparent;color:var(--lavender)}header a.brand img{width:2rem;height:2rem}header a{padding:.45rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--text);text-decoration:none}header a:hover{background:var(--base);color:var(--lavender)}header .sp{flex:1}header .who{font-size:.875rem;color:var(--subtext)}header form{margin:0 0 0 .5rem}header button{height:2.125rem;padding:0 .9rem;font-size:.875rem}main{max-width:72rem;margin:1.5rem auto;padding:0 1.5rem}.card{background:var(--mantle);border:1px solid var(--base);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem;box-shadow:0 10px 30px #0006;overflow-x:auto;animation:rise .8s var(--ease) both}.card.narrow{max-width:28rem}.card-head{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.25rem}.card-head h2{margin:0}h2{margin:0 0 1.25rem;font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:#fff}h2 .mut{font-size:.85rem;font-weight:500;margin-left:.35rem}.hint{margin:.9rem 0 0;font-size:.825rem;color:var(--overlay)}.scope{margin:-.5rem 0 1.25rem}.tag{display:inline-block;padding:.1rem .5rem;border-radius:9999px;border:1px solid var(--surface1);background:var(--base);color:var(--lavender);font-size:.75rem;font-weight:600;vertical-align:middle}.tag.off{color:var(--overlay)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--surface0);vertical-align:middle}th:first-child,td:first-child{padding-left:0}td.num,th.num{text-align:right}.nowrap{white-space:nowrap}.empty-row{text-align:center!important;padding:2rem!important}.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}tbody tr:hover{background:var(--base)}th{color:var(--overlay);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}input:not([type=checkbox]),select,button{height:2.5rem}input,select{font:inherit;font-size:.925rem;padding:0 .8rem;border-radius:8px;border:1px solid var(--surface1);background:var(--crust);color:var(--text);min-width:0}input::placeholder{color:#6c7086}select{padding-right:2rem;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--overlay) 50%),linear-gradient(135deg,var(--overlay) 50%,transparent 50%);background-position:right 1rem center,right .7rem center;background-size:.3rem .3rem;background-repeat:no-repeat}td select{min-width:10rem}input:hover,select:hover{border-color:var(--surface2)}input:focus,select:focus{outline:none;border-color:var(--lavender);box-shadow:0 0 0 3px #d69aff26}input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:var(--mauve)}button{font:inherit;font-size:.925rem;font-weight:600;padding:0 1.1rem;border-radius:8px;white-space:nowrap;border:1px solid var(--mauve);background:var(--mauve);color:var(--crust);cursor:pointer}button:hover{background:var(--lavender);border-color:var(--lavender)}button.ghost{background:transparent;border-color:var(--surface1);color:var(--text)}button.ghost:hover{background:var(--base);border-color:var(--lavender);color:var(--lavender)}button.bad{background:transparent;border-color:#ff6b6b66;color:var(--red)}button.bad:hover{background:#ff6b6b1a;border-color:var(--red)}td button,td input:not([type=checkbox]),td select,.card-head button,.card-head input:not([type=checkbox]){height:2.125rem;font-size:.875rem}form.inline{display:inline-flex;gap:.5rem;align-items:center;margin:0;flex-wrap:wrap}.card-head form.inline input{width:16rem}.stack{display:flex;flex-direction:column;gap:1.25rem;margin:0}.stack>label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--subtext)}.row{display:flex;gap:.75rem;justify-content:flex-start}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem 1.25rem;align-items:end;margin:0}.grid .wide{grid-column:span 2}@media(max-width:40rem){.grid .wide{grid-column:auto}}.grid label{display:flex;flex-direction:column;font-size:.85rem;font-weight:500;color:var(--subtext);gap:.4rem}.checks{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}label.chk{display:inline-flex;flex-direction:row;align-items:center;gap:.55rem;font-size:.9rem;color:var(--text);cursor:pointer}label.pill{padding:.45rem .8rem;border:1px solid var(--surface1);border-radius:8px;background:var(--crust)}label.pill:has(input:checked){border-color:var(--mauve);background:#c77dff14}fieldset.svc-pick{margin:0;padding:1rem 1.1rem 1.1rem;border:1px solid var(--surface0);border-radius:10px}fieldset.svc-pick legend{padding:0 .4rem;font-size:.85rem;font-weight:500;color:var(--subtext)}.checks .pill{margin:0}.role-form:has(select[name=role] option[value=admin]:checked) .svc-pick{display:none}.stats{display:flex;gap:2rem;flex-wrap:wrap}.stats div b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.02em;color:var(--lavender)}.stats div:nth-child(2) b{color:var(--blue)}.stats div:nth-child(3) b{color:var(--green)}.stats div:nth-child(4) b{color:#ffb86b}.stats div:nth-child(5) b{color:var(--red)}.stats div:nth-child(6) b{color:#6bfff5}.login{max-width:22rem;margin:14vh auto}.login button{width:100%;margin-top:.25rem}.err{background:#ff6b6b14;border:1px solid #ff6b6b66;color:var(--red);padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem}
