:root {
    --faey-ink: #0B1F33;
    --faey-navy: #102A43;
    --faey-gold: #C8A45D;
    --faey-text: #111827;
    --faey-muted: #667085;
    --faey-line: #E6E8EC;
    --faey-soft: #F6F7F9;
    --faey-paper: #FFFFFF;
    --faey-danger: #B42318;
    --faey-success: #067647;
    --radius: 14px;
    --shadow: 0 12px 32px rgba(11,31,51,.08);
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--faey-soft); }
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--faey-text);
    background:
        radial-gradient(circle at 100% 0%, rgba(200,164,93,.10), transparent 24rem),
        var(--faey-soft);
}
.topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(11,31,51,.97);
    color: white;
    padding: 14px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 3px solid var(--faey-gold);
    box-shadow: 0 8px 24px rgba(11,31,51,.18);
}
.brand-wrap { display:flex; align-items:center; gap:16px; }
.brand-logo {
    display:block;
    width:152px;
    max-height:58px;
    object-fit:contain;
    background:white;
    border-radius:6px;
    padding:5px;
}
.brand-text strong { display:block; font-size:1.05rem; letter-spacing:.02em; }
.brand-text span { font-size:.76rem; color:#D0D5DD; }
.container { max-width: 1240px; margin: 30px auto; padding: 0 22px 60px; }
.page-title { margin:0 0 22px; color:var(--faey-ink); font-size:2rem; }
.card {
    background: var(--faey-paper);
    border: 1px solid var(--faey-line);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--shadow);
}
.card h2 { margin-top:0; color:var(--faey-navy); }
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
}
.kpi {
    position:relative;
    overflow:hidden;
    border-top:4px solid var(--faey-gold);
}
.kpi::after {
    content:"";
    position:absolute;
    right:-26px;
    top:-26px;
    width:90px;
    height:90px;
    border-radius:50%;
    background:rgba(200,164,93,.10);
}
.kpi h2 { margin-bottom:0; font-size:2rem; }
label { display:block; margin: 13px 0 7px; font-weight: 650; color:var(--faey-navy); }
input, select, textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #D0D5DD;
    border-radius: 9px;
    background:white;
    color:var(--faey-text);
    transition:.16s ease;
}
input:focus, select:focus, textarea:focus {
    outline:none;
    border-color:var(--faey-gold);
    box-shadow:0 0 0 3px rgba(200,164,93,.18);
}
small.help { color:var(--faey-muted); display:block; margin-top:6px; }
button, .button {
    background: var(--faey-navy);
    color: white;
    border: 1px solid var(--faey-navy);
    border-radius: 9px;
    padding: 11px 17px;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:650;
    transition:.16s ease;
}
button:hover, .button:hover { background:var(--faey-ink); transform:translateY(-1px); }
.button.secondary { background: var(--faey-gold); border-color:var(--faey-gold); color: var(--faey-ink); }
table { width: 100%; border-collapse: collapse; }
th {
    padding: 12px 11px;
    border-bottom: 2px solid var(--faey-gold);
    text-align: left;
    color:var(--faey-navy);
    font-size:.82rem;
    text-transform:uppercase;
    letter-spacing:.035em;
}
td { padding: 12px 11px; border-bottom: 1px solid var(--faey-line); text-align:left; }
tbody tr:hover { background:#FAFAFB; }
.alert { padding: 13px 15px; border-radius: 9px; margin-bottom: 16px; border:1px solid transparent; }
.alert.error { background:#FEF3F2; color:var(--faey-danger); border-color:#FECDCA; }
.alert.success { background:#ECFDF3; color:var(--faey-success); border-color:#ABEFC6; }
.nav { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.nav a {
    color: #F2F4F7;
    margin-left: 18px;
    text-decoration: none;
    font-size:.92rem;
}
.nav a:hover { color:var(--faey-gold); }
.auth-card { max-width:490px; margin:60px auto; }
.badge {
    display:inline-flex;
    padding:4px 9px;
    border-radius:999px;
    background:#F2F4F7;
    color:#344054;
    font-size:.8rem;
}
.actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
@media(max-width:800px) {
    .topbar { align-items:flex-start; gap:14px; flex-direction:column; }
    .nav a { margin:0 14px 6px 0; }
    .brand-logo { width:128px; }
    .container { margin-top:20px; padding:0 14px 40px; }
    .card { padding:18px; overflow:auto; }
}

.brand-logo-frame{width:172px;height:66px;min-width:172px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;border-radius:7px;padding:5px 8px}
.brand-logo{display:block;width:auto!important;height:auto!important;max-width:160px!important;max-height:56px!important;object-fit:contain}
.project-context{display:flex;align-items:center;gap:10px;color:#F2F4F7;margin-left:auto}
.project-context form{margin:0}.project-context select{width:auto;min-width:220px;padding:8px 34px 8px 10px;background:#fff}
.context-label{font-size:.76rem;color:#D0D5DD;display:block}.context-project{font-weight:700;color:var(--faey-gold)}
.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-inline{display:inline}
.logo-preview{width:220px;height:90px;object-fit:contain;background:#fff;border:1px solid var(--faey-line);border-radius:8px;padding:8px}
@media(max-width:900px){.project-context{width:100%;margin-left:0;flex-wrap:wrap}.two-column{grid-template-columns:1fr}}

.project-bar {
    background: #FFFFFF;
    border-bottom: 1px solid var(--faey-line);
    box-shadow: 0 4px 16px rgba(11,31,51,.05);
}
.project-bar-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 13px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.project-identity {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    column-gap: 12px;
}
.project-eyebrow {
    grid-column: 1 / -1;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    color: var(--faey-muted);
}
.project-identity strong {
    font-size: 1rem;
    color: var(--faey-ink);
}
.project-code {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(200,164,93,.15);
    color: #7A5A1A;
    font-size: .76rem;
    font-weight: 700;
}
.project-switcher {
    display: flex;
    align-items: center;
    gap: 10px;
}
.project-switcher label {
    margin: 0;
    font-size: .78rem;
    color: var(--faey-muted);
}
.project-switcher select {
    width: auto;
    min-width: 280px;
    padding: 8px 34px 8px 10px;
}
.audit-filters {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr auto;
    gap: 12px;
    align-items: end;
}
.audit-filters label { font-size: .78rem; margin-top: 0; }
.audit-meta { color: var(--faey-muted); font-size: .82rem; }
.audit-event { font-weight: 700; color: var(--faey-navy); }
.audit-severity {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}
.audit-severity.info { background:#EFF8FF; color:#175CD3; }
.audit-severity.warning { background:#FFFAEB; color:#B54708; }
.audit-severity.critical { background:#FEF3F2; color:#B42318; }
.audit-detail-grid {
    display:grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:16px;
}
.audit-json {
    background:#0B1F33;
    color:#E5E7EB;
    border-radius:10px;
    padding:16px;
    overflow:auto;
    white-space:pre-wrap;
    word-break:break-word;
    min-height:120px;
}
.pagination { display:flex; gap:8px; margin-top:18px; }
.pagination a { text-decoration:none; padding:8px 12px; border:1px solid var(--faey-line); border-radius:7px; color:var(--faey-navy); }
@media(max-width:900px){
    .project-bar-inner{align-items:flex-start;flex-direction:column}
    .project-switcher{width:100%;align-items:flex-start;flex-direction:column}
    .project-switcher select{width:100%;min-width:0}
    .audit-filters{grid-template-columns:1fr}
    .audit-detail-grid{grid-template-columns:1fr}
}

.health-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.health-card { border-left:4px solid var(--faey-line); }
.health-card.ok { border-left-color:#12B76A; }
.health-card.warning { border-left-color:#F79009; }
.health-card.error { border-left-color:#F04438; }
.matrix { overflow:auto; }
.matrix th:first-child, .matrix td:first-child { position:sticky; left:0; background:#fff; z-index:2; }
.checkbox-cell { text-align:center; }
.security-note { border-left:4px solid #F79009; background:#FFFAEB; padding:13px; border-radius:8px; }

.main-nav {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    margin-left:auto;
}
.nav-link, .nav-trigger {
    color:#F2F4F7;
    background:transparent;
    border:0;
    border-radius:7px;
    padding:9px 10px;
    text-decoration:none;
    font:inherit;
    font-size:.9rem;
    font-weight:650;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.nav-link:hover, .nav-trigger:hover, .nav-group.open .nav-trigger {
    background:rgba(255,255,255,.09);
    color:var(--faey-gold);
    transform:none;
}
.nav-group { position:relative; }
.nav-dropdown {
    display:none;
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    width:260px;
    background:#fff;
    color:var(--faey-text);
    border:1px solid var(--faey-line);
    border-radius:11px;
    box-shadow:0 18px 44px rgba(11,31,51,.20);
    padding:7px;
    z-index:100;
}
.nav-group.open .nav-dropdown { display:block; }
.nav-dropdown-right { left:auto; right:0; width:210px; }
.nav-dropdown a, .nav-disabled {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:10px 11px;
    border-radius:7px;
    text-decoration:none;
    font-size:.88rem;
}
.nav-dropdown a { color:var(--faey-navy); }
.nav-dropdown a:hover { background:var(--faey-soft); color:var(--faey-ink); }
.nav-disabled { color:#98A2B3; cursor:not-allowed; }
.nav-disabled small {
    font-size:.66rem;
    padding:2px 6px;
    border-radius:999px;
    background:#F2F4F7;
    color:#667085;
}
.user-trigger {
    margin-left:6px;
    border-left:1px solid rgba(255,255,255,.22);
    border-radius:0;
    padding-left:16px;
}
.project-identity-link {
    display:grid;
    grid-template-columns:auto auto;
    align-items:baseline;
    column-gap:12px;
    text-decoration:none;
}
.project-title { font-size:1rem; color:var(--faey-ink); font-weight:750; }
.detail-tabs {
    display:flex;
    gap:6px;
    border-bottom:1px solid var(--faey-line);
    margin-bottom:20px;
    overflow:auto;
}
.detail-tabs a {
    padding:11px 14px;
    color:var(--faey-muted);
    text-decoration:none;
    border-bottom:3px solid transparent;
    white-space:nowrap;
}
.detail-tabs a.active {
    color:var(--faey-navy);
    border-bottom-color:var(--faey-gold);
    font-weight:750;
}
.summary-list {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:14px;
}
.summary-item {
    border:1px solid var(--faey-line);
    border-radius:10px;
    padding:14px;
    background:#fff;
}
.summary-item span { display:block; color:var(--faey-muted); font-size:.75rem; margin-bottom:5px; }
.role-cards {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:17px;
}
.role-card { position:relative; }
.role-card .role-summary { color:var(--faey-muted); min-height:44px; }
.permission-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:15px; }
.permission-group {
    border:1px solid var(--faey-line);
    border-radius:10px;
    padding:15px;
}
.permission-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    padding:9px 0;
    border-bottom:1px solid #F2F4F7;
}
.permission-row:last-child { border-bottom:0; }
.organization-notice {
    background:#EFF8FF;
    border:1px solid #B2DDFF;
    color:#1849A9;
    padding:13px 15px;
    border-radius:9px;
}
.current-session {
    display:inline-flex;
    padding:3px 7px;
    border-radius:999px;
    background:#ECFDF3;
    color:#067647;
    font-size:.72rem;
    font-weight:750;
}
@media(max-width:1100px){
    .topbar{align-items:flex-start;flex-direction:column}
    .main-nav{width:100%;justify-content:flex-start;flex-wrap:wrap}
    .user-trigger{margin-left:0;border-left:0;padding-left:10px}
    .nav-dropdown{position:fixed;left:14px;right:14px;top:auto;width:auto}
}

.page-header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
.page-header h1 { margin:0; }
.page-header p { margin:6px 0 0; color:var(--faey-muted); }
.empty-state {
    text-align:center;
    padding:46px 22px;
}
.empty-state-icon {
    width:54px;height:54px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(200,164,93,.14);
    color:#7A5A1A;font-size:1.5rem;margin:0 auto 14px;
}
.toolbar {
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:16px;
    flex-wrap:wrap;
}
.toolbar-filters {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.toolbar input, .toolbar select { width:auto; min-width:180px; }
.table-scroll { overflow-x:auto; }
.table-actions { display:flex; gap:6px; flex-wrap:wrap; }
.button.compact, button.compact { padding:8px 11px; font-size:.82rem; }

.mobile-menu-button {
    display:none;
    width:42px;height:42px;padding:9px;
    background:transparent;border:1px solid rgba(255,255,255,.18);
}
.mobile-menu-button span {
    display:block;height:2px;background:#fff;margin:5px 0;border-radius:3px;
}
.permission-scope-card {
    background:linear-gradient(135deg,#fff,#FCFAF5);
    border:1px solid var(--faey-line);
    border-left:4px solid var(--faey-gold);
}
.scope-controls {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:14px;
}
.permission-tabs {
    display:flex;gap:6px;margin-top:16px;flex-wrap:wrap;
}
.permission-tabs a {
    padding:9px 13px;border-radius:8px;text-decoration:none;
    color:var(--faey-muted);background:#F2F4F7;
}
.permission-tabs a.active {
    background:var(--faey-navy);color:#fff;
}
.permission-matrix-wrap {
    overflow:auto;
    border:1px solid var(--faey-line);
    border-radius:12px;
}
.permission-matrix {
    min-width:980px;
    border-collapse:separate;
    border-spacing:0;
}
.permission-matrix thead th {
    position:sticky;top:0;background:#fff;z-index:4;
}
.permission-matrix th:first-child,
.permission-matrix td:first-child {
    position:sticky;left:0;background:#fff;z-index:3;
    min-width:330px;
}
.permission-matrix .group-row td {
    background:#F2F4F7;
    font-weight:800;
    color:var(--faey-navy);
}
.toggle {
    position:relative;display:inline-block;width:46px;height:26px;
}
.toggle input { opacity:0;width:0;height:0; }
.toggle-slider {
    position:absolute;cursor:pointer;inset:0;
    background:#E4E7EC;border-radius:999px;transition:.18s;
}
.toggle-slider::before {
    content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;
    background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.18s;
}
.toggle input:checked + .toggle-slider { background:var(--faey-navy); }
.toggle input:checked + .toggle-slider::before { transform:translateX(20px); }
.toggle.inherited .toggle-slider { box-shadow:0 0 0 2px rgba(200,164,93,.45); }

.override-select {
    min-width:110px;
    padding:7px 28px 7px 8px;
}
.mobile-card-list { display:none; }

@media(max-width:1100px){
    .mobile-menu-button { display:block;margin-left:auto; }
    .main-nav {
        display:none;
        position:absolute;
        top:86px;left:12px;right:12px;
        background:var(--faey-ink);
        border:1px solid rgba(255,255,255,.12);
        border-radius:12px;
        padding:10px;
        box-shadow:0 20px 50px rgba(0,0,0,.28);
        z-index:150;
    }
    .main-nav.mobile-open {
        display:flex;
        flex-direction:column;
        align-items:stretch;
    }
    .nav-link,.nav-trigger,.user-trigger {
        width:100%;justify-content:space-between;
        border-left:0;margin:0;border-radius:7px;
    }
    .nav-group { width:100%; }
    .nav-dropdown {
        position:static;
        width:100%;
        box-shadow:none;
        border:0;
        margin-top:4px;
        background:rgba(255,255,255,.06);
    }
    .nav-dropdown a { color:#F2F4F7; }
    .nav-dropdown a:hover { background:rgba(255,255,255,.08);color:var(--faey-gold); }
}
@media(max-width:768px){
    .container { padding:0 12px 34px; }
    .page-header { align-items:stretch;flex-direction:column; }
    .page-header .button { width:100%; }
    .toolbar { align-items:stretch;flex-direction:column; }
    .toolbar-filters { display:grid;grid-template-columns:1fr; }
    .toolbar input,.toolbar select { width:100%;min-width:0; }
    .scope-controls { grid-template-columns:1fr; }
    .desktop-table { display:none; }
    .mobile-card-list { display:grid;gap:12px; }
    .record-card {
        background:#fff;border:1px solid var(--faey-line);
        border-radius:12px;padding:15px;box-shadow:var(--shadow);
    }
    .record-card-header {
        display:flex;justify-content:space-between;gap:10px;align-items:flex-start;
    }
    .record-card dl { margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px; }
    .record-card dt { color:var(--faey-muted);font-size:.7rem; }
    .record-card dd { margin:2px 0 0;font-weight:650;word-break:break-word; }
    .record-card .table-actions { margin-top:12px; }
    .record-card .button,.record-card button { flex:1; }
    .permission-matrix-wrap { border:0;overflow:visible; }
    .permission-matrix { min-width:0;display:block; }
    .permission-matrix thead { display:none; }
    .permission-matrix tbody,.permission-matrix tr,.permission-matrix td { display:block; }
    .permission-matrix tr:not(.group-row) {
        margin-bottom:12px;border:1px solid var(--faey-line);
        border-radius:10px;padding:12px;background:#fff;
    }
    .permission-matrix th:first-child,.permission-matrix td:first-child {
        position:static;min-width:0;
    }
    .permission-matrix td.permission-toggle-cell {
        display:flex;justify-content:space-between;align-items:center;
        border-bottom:1px solid #F2F4F7;
    }
    .permission-toggle-cell::before {
        content:attr(data-role);
        color:var(--faey-muted);font-size:.78rem;
    }
    .permission-matrix .group-row td { border-radius:8px;margin:18px 0 8px; }
}

body { padding-top: 0; }
.topbar { position: relative; }
main.container { padding-top: 28px; }

.brand-logo-frame {
    background:#fff;
    width:180px;
    height:68px;
}
.brand-logo {
    max-width:166px!important;
    max-height:58px!important;
}

.list-header {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:16px;
}
.list-header h2 { margin:0; }
.list-header p { margin:5px 0 0;color:var(--faey-muted); }

.tristate {
    display:inline-grid;
    grid-template-columns:repeat(3,1fr);
    border:1px solid var(--faey-line);
    border-radius:8px;
    overflow:hidden;
    min-width:164px;
    background:#fff;
}
.tristate label {
    margin:0;
    position:relative;
}
.tristate input {
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.tristate span {
    display:block;
    text-align:center;
    padding:7px 8px;
    font-size:.72rem;
    cursor:pointer;
    color:var(--faey-muted);
    border-right:1px solid var(--faey-line);
    white-space:nowrap;
}
.tristate label:last-child span { border-right:0; }
.tristate input:checked + span.inherit {
    background:#F2F4F7;color:#344054;font-weight:750;
}
.tristate input:checked + span.allow {
    background:#ECFDF3;color:#067647;font-weight:750;
}
.tristate input:checked + span.deny {
    background:#FEF3F2;color:#B42318;font-weight:750;
}
.permission-help {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}
.permission-help div {
    border:1px solid var(--faey-line);
    border-radius:8px;
    padding:10px;
    font-size:.8rem;
}
.permission-help strong { display:block;margin-bottom:3px; }
.scope-badge {
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#EFF8FF;
    color:#175CD3;
    font-size:.72rem;
    font-weight:750;
}
.action-menu { display:flex;gap:8px;flex-wrap:wrap; }
.action-menu .button { min-width:auto; }

@media(max-width:768px){
    .list-header { flex-direction:column;align-items:stretch; }
    .list-header .button { width:100%; }
    .permission-help { grid-template-columns:1fr; }
    .tristate { width:100%;min-width:0; }
    .permission-matrix tr:not(.group-row) td:first-child {
        padding-bottom:10px;
        margin-bottom:8px;
        border-bottom:1px solid var(--faey-line);
    }
    .permission-toggle-cell {
        padding:8px 0!important;
    }
    .permission-toggle-cell::before {
        min-width:120px;
        font-weight:650;
    }
}

.checkbox-label {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:18px;
}
.checkbox-label input { width:auto; margin:0; }
.advanced-options {
    margin-top:20px;
    border:1px solid var(--faey-line);
    border-radius:10px;
    background:#FCFCFD;
    padding:0 15px;
}
.advanced-options summary {
    cursor:pointer;
    padding:14px 0;
    font-weight:750;
    color:var(--faey-navy);
}
.advanced-options[open] { padding-bottom:15px; }
@media(max-width:768px){
    .advanced-options .two-column { grid-template-columns:1fr; }
}

.permission-section h2 {
    margin-top:0;
    padding-bottom:12px;
    border-bottom:1px solid var(--faey-line);
}
.permission-list {
    display:grid;
}
.permission-list-row {
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto;
    align-items:center;
    gap:24px;
    padding:14px 0;
    border-bottom:1px solid #EAECF0;
}
.permission-list-row:last-child { border-bottom:0; }
.permission-info {
    display:flex;
    flex-direction:column;
    gap:3px;
}
.permission-info strong { color:var(--faey-ink); }
.permission-info span {
    color:var(--faey-muted);
    font-size:.76rem;
}
.permission-info small {
    margin-top:3px;
    color:var(--faey-muted);
}
.permission-choice {
    display:grid;
    grid-template-columns:repeat(3,86px);
    border:1px solid var(--faey-line);
    border-radius:9px;
    overflow:hidden;
}
.permission-choice label {
    margin:0;
    position:relative;
}
.permission-choice input {
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.permission-choice span {
    display:block;
    padding:8px 10px;
    text-align:center;
    cursor:pointer;
    border-right:1px solid var(--faey-line);
    color:var(--faey-muted);
    font-size:.8rem;
}
.permission-choice label:last-child span { border-right:0; }
.permission-choice input[value="inherit"]:checked + span {
    background:#F2F4F7;
    color:#344054;
    font-weight:750;
}
.permission-choice input[value="allow"]:checked + span {
    background:#ECFDF3;
    color:#067647;
    font-weight:750;
}
.permission-choice input[value="deny"]:checked + span {
    background:#FEF3F2;
    color:#B42318;
    font-weight:750;
}
.sticky-save-bar {
    position:sticky;
    bottom:12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-top:18px;
    padding:12px 14px;
    border-radius:12px;
    background:rgba(11,31,51,.96);
    color:#fff;
    box-shadow:0 14px 38px rgba(11,31,51,.25);
    z-index:30;
}
.sticky-save-bar button { margin:0; }

@media(max-width:768px){
    .permission-list-row {
        grid-template-columns:1fr;
        gap:12px;
    }
    .permission-choice {
        grid-template-columns:repeat(3,1fr);
        width:100%;
    }
    .sticky-save-bar {
        flex-direction:column;
        align-items:stretch;
    }
    .sticky-save-bar button { width:100%; }
}
