:root{--bg: #1a2218;--bg-elevated: #243022;--ink: #f2efe6;--muted: #b7c0ae;--accent: #c4a35a;--accent-strong: #e0bf6a;--line: rgba(242, 239, 230, .14);--danger: #d9796b;--font-display: "Fraunces", Georgia, serif;--font-body: "Source Sans 3", "Segoe UI", sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,rgba(196,163,90,.18),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(90,122,84,.25),transparent 50%),var(--bg);font-family:var(--font-body);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}.shell{width:min(960px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0 1.5rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.brand{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.02em}.nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.nav a{color:var(--muted);font-weight:600}.nav a.active,.nav a:hover{color:var(--ink);text-decoration:none}.hero h1,.panel h2{font-family:var(--font-display);font-weight:700;letter-spacing:.01em;margin:0 0 .75rem}.hero p,.panel p,.muted{color:var(--muted);margin:0}.hero{margin-bottom:2rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.panel{background:color-mix(in srgb,var(--bg-elevated) 92%,black);border:1px solid var(--line);border-radius:12px;padding:1.25rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.button{appearance:none;border:0;border-radius:999px;padding:.7rem 1.15rem;font:inherit;font-weight:700;cursor:pointer;background:var(--accent);color:#1a2218}.button:hover{background:var(--accent-strong)}.button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.button:disabled{opacity:.55;cursor:not-allowed}.status-ok{color:#9dce8f}.status-bad{color:var(--danger)}.field{display:flex;flex-direction:column;gap:.4rem;margin:1rem 0;font-weight:600}.field select{appearance:none;border:1px solid var(--line);border-radius:10px;background:#1b2419;color:var(--ink);padding:.7rem .85rem;font:inherit}.command-list{display:grid;gap:.55rem;margin:.5rem 0 .25rem}.check-row{display:flex;gap:.7rem;align-items:flex-start;padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;background:#0000001f;font-weight:500;cursor:pointer}.check-row input{margin-top:.2rem}.field-with-spinner{display:inline-flex;align-items:center;gap:.55rem}.permission-group-preview{display:grid;gap:.75rem;margin:.25rem 0 .5rem}.permission-group-card{padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:#0000001f}.permission-group-card ul{margin:.45rem 0 0;padding-left:1.1rem}.permission-group-card li{margin:.25rem 0}.permission-group-card code{font-size:.9em}.loading-spinner{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-weight:600}.loading-spinner__icon{width:var(--spinner-size, 20px);height:var(--spinner-size, 20px);border:2px solid rgba(242,239,230,.2);border-top-color:var(--accent-strong);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner__label{font-size:.95rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.topbar{align-items:flex-start;flex-direction:column}}
