:root{color:#1d1f24;--muted:#6b6f78;--line:#e2e0da;--accent:#2f6fdb;--ok:#1f8a4c;background:#f6f5f2;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}code,.mono{font-family:ui-monospace,Consolas,monospace;font-size:.9em}.center{max-width:420px;margin:12vh auto;padding:0 16px}.login{gap:12px;display:grid}.login label{gap:4px;font-size:14px;display:grid}input{border:1px solid var(--line);font:inherit;border-radius:6px;padding:8px 10px}button{border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:6px;padding:8px 14px}.login button{background:var(--accent);color:#fff;border-color:var(--accent)}button.link{color:var(--accent);background:0 0;border:0;padding:0}.error{color:#b3261e}.note{color:var(--muted)}header{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:20px;padding:12px 20px;display:flex}header nav{gap:6px;display:flex}header nav button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.who{color:var(--muted);margin-left:auto;font-size:14px}main{padding:20px;overflow-x:auto}table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;font-size:14px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}tr.module td:first-child{padding-left:28px}.name{font-weight:600}.muted{color:var(--muted);font-size:13px}.tag{color:#7a5a17;background:#efe6d4;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:500}.perms{flex-wrap:wrap;gap:4px;display:flex}.perm{border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:2px 7px;font-size:11px}.perm.on{border-color:var(--ok);color:var(--ok);background:#e9f5ee}.perms.summary{margin-bottom:8px}.ac-fab{z-index:20;background:#fff;border-radius:999px;padding:12px 18px;font-weight:600;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 16px #0000001f}.ac-fab.has{color:#1d1f24;background:#f2a93b;border-color:#f2a93b}.ac-backdrop{z-index:30;background:#00000040;justify-content:flex-end;display:flex;position:fixed;inset:0}.ac-panel{background:#f6f5f2;width:min(560px,100%);height:100%;padding:16px;overflow-y:auto;box-shadow:-4px 0 20px #00000026}.ac-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.ac-card{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:14px;padding:14px}.ac-card h3{margin:6px 0;font-size:16px}.ac-card dl{margin:8px 0;font-size:14px}.ac-card dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:8px;font-size:12px;font-weight:600}.ac-card dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.ac-card textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:6px;margin:8px 0;padding:8px}.ac-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.ac-risk{border-radius:10px;padding:2px 8px;font-weight:600}.ac-risk.r0,.ac-risk.r1{color:var(--ok);background:#e9f5ee}.ac-risk.r2{color:#8a5a00;background:#fdf0d9}.ac-risk.r3{color:#b3261e;background:#fbe3e1}.ac-actions{flex-wrap:wrap;gap:6px;display:flex}.ac-actions button{flex:auto}.ac-actions .ok{background:var(--ok);color:#fff;border-color:var(--ok)}.ac-actions .danger{color:#b3261e;border-color:#e7b7b2}.ac-sub{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:18px 0 8px;font-size:13px}.ac-done{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:6px;padding:8px 10px;font-size:14px}@media (width<=600px){.ac-panel{padding:12px}.ac-actions button{flex:45%}}.ac-new{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:12px}.ac-new textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:6px;margin:6px 0;padding:8px}.ac-new .ok-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.ac-req{border-top:1px solid var(--line);margin-top:6px;padding:6px 0;font-size:13px}
