.security-settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.security-setting-card{
  display:flex;
  gap:18px;
  align-items:flex-start;
}

.security-setting-card label{
  display:grid;
  gap:7px;
  margin:14px 0;
  font-weight:750;
}

.security-setting-card input{
  width:100%;
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
}

.security-setting-icon{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:16px;
  background:#eaf8f3;
  color:var(--emerald);
  font-size:1.45rem;
  font-weight:900;
}

.security-confirmed{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#def7ed;
  color:#087254;
}

.security-code-input{
  text-align:center;
  font-size:1.8rem;
  letter-spacing:.35em;
  font-weight:850;
}

.inline-security-form{
  margin-top:12px;
}

.recovery-code-panel{
  margin-top:20px;
  border-top:1px solid var(--border);
  padding-top:16px;
}

.recovery-code-panel summary{
  cursor:pointer;
  color:var(--navy);
  font-weight:800;
}

.recovery-code-panel form{
  margin-top:14px;
}

.recovery-codes-card{
  margin-bottom:20px;
  border-color:#e3cc7e;
  background:#fff9e5;
}

.recovery-code-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}

.recovery-code-grid code{
  display:block;
  padding:12px;
  border-radius:10px;
  background:#0B2345;
  color:#fff;
  text-align:center;
  font-size:1rem;
  font-weight:850;
}

.security-enrolment-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}

.session-list{
  display:grid;
  gap:13px;
}

.session-row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto auto;
  gap:14px;
  align-items:center;
}

.session-row.current-session{
  border-color:#9edbc8;
  background:#f0faf7;
}

.session-device-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#e8eef7;
  color:#31577d;
  font-size:1.3rem;
}

.session-title{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}

.session-row p{
  margin:5px 0;
  color:var(--muted);
}

.session-row small{
  color:var(--muted);
}

.current-session-badge{
  display:inline-flex;
  padding:4px 8px;
  border-radius:999px;
  background:#def7ed;
  color:#087254;
  font-size:.68rem;
  font-weight:850;
}

.admin-session-list{
  display:grid;
}

.admin-session-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px auto;
  gap:16px;
  align-items:center;
  padding:15px 0;
  border-top:1px solid var(--border);
}

.admin-session-row p{
  margin:4px 0;
  color:var(--muted);
}

.admin-session-row small{
  display:block;
  color:var(--muted);
}

@media print{
  body *{
    visibility:hidden;
  }

  .recovery-codes-card,
  .recovery-codes-card *{
    visibility:visible;
  }

  .recovery-codes-card{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    border:0;
  }

  .site-header,
  .site-footer,
  .recovery-codes-card button{
    display:none!important;
  }
}

@media(max-width:800px){
  .security-settings-grid{
    grid-template-columns:1fr;
  }

  .recovery-code-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .security-enrolment-card{
    align-items:flex-start;
    flex-direction:column;
  }

  .session-row{
    grid-template-columns:44px 1fr;
  }

  .session-row>.team-status,
  .session-row>form{
    grid-column:2;
    justify-self:start;
  }

  .admin-session-row{
    grid-template-columns:1fr;
  }
}
