.ad-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.ad-card { border-radius: 18px; border: 1px solid rgba(127,127,127,.18); padding: 1rem; display: flex; flex-direction: column; gap: .5rem; background: var(--bs-card-bg, #fff); }
.ad-card.off { opacity: .6; }
.ad-top { display: flex; gap: .7rem; align-items: center; }
.ad-av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; flex: 0 0 auto; }
.ad-top b { display: block; } .ad-top small { opacity: .65; }
.ad-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.ad-chip { border-radius: 999px; padding: .05rem .55rem; font-size: .75rem; background: rgba(127,127,127,.12); }
.ad-chip.ok { background: #e3f2d9; color: #2f7124; } .ad-chip.warn { background: #fff1cc; color: #8a5a00; } .ad-chip.bad { background: #fde1dc; color: #a12f1d; }
.ad-bar { display: flex; height: 8px; border-radius: 999px; overflow: hidden; background: rgba(127,127,127,.12); } .ad-bar span { display: block; height: 100%; }
.ad-mods { display: grid; gap: .45rem; }
.ad-mod { display: grid; grid-template-columns: minmax(180px, 1fr) auto; gap: .8rem; align-items: center; padding: .5rem .7rem; border-radius: 12px; background: rgba(127,127,127,.06); }
.ad-mod b { display: block; font-weight: 600; } .ad-mod small { opacity: .65; }
.ad-mod .mdi { color: #4b8b2a; margin-right: .3rem; }
.ad-lv { display: inline-flex; border-radius: 999px; overflow: hidden; border: 1px solid rgba(127,127,127,.3); }
.ad-lv button { border: 0; background: transparent; padding: .25rem .65rem; font-size: .82rem; cursor: pointer; color: inherit; }
.ad-lv button.on { background: #4b8b2a; color: #fff; } .ad-lv button[data-lvl="none"].on { background: #8a8270; }
.ad-lv button:disabled { opacity: .3; cursor: not-allowed; }
.ad-group { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; opacity: .6; margin: .8rem 0 .3rem; }
.ad-roles { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .5rem; }
.ad-role { border: 2px solid rgba(127,127,127,.2); border-radius: 14px; padding: .55rem .7rem; cursor: pointer; }
.ad-role.on { border-color: #4b8b2a; background: rgba(75,139,42,.08); } .ad-role b { display: block; } .ad-role small { opacity: .7; font-size: .8rem; line-height: 1.25; display: block; }
.ad-act { max-height: 320px; overflow: auto; } .ad-act li { padding: .35rem 0; border-bottom: 1px dashed rgba(127,127,127,.2); font-size: .88rem; }
