:root{
  --purple-deep:#5B21B6;
  --purple:#6D28D9;
  --purple-mid:#7C3AED;
  --purple-light:#A78BFA;
  --purple-pale:#F3EEFD;
  --ink:#1C1730;
  --gray:#6B6480;
  --gray-light:#9C96AE;
  --divider:#ECE7FA;
}
*{box-sizing:border-box;}
body{
  margin:0;
  min-height:100vh;
  font-family:'Manrope',system-ui,sans-serif;
  background:
    radial-gradient(circle at 15% 8%, #EFE7FE 0%, transparent 45%),
    radial-gradient(circle at 85% 92%, #E4D9FC 0%, transparent 50%),
    #F7F4FD;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:48px 20px 64px;
  color:var(--ink);
}
.page{width:100%; max-width:380px;}
.frame{
  background:linear-gradient(160deg, var(--purple-light), var(--purple-deep));
  border-radius:44px;
  padding:8px;
  box-shadow:0 20px 44px -20px rgba(93,33,182,0.45);
}
.frame-inner{
  background:#F4F1FC;
  border-radius:38px;
  padding:20px;
}
.back-link{
  display:inline-block;
  margin-bottom:14px;
  font-size:12.5px;
  font-weight:700;
  color:var(--gray-light);
  text-decoration:none;
}
.back-link:hover{color:var(--purple);}
.dir-header{
  text-align:center;
  margin-bottom:16px;
}
.dir-title{
  font-size:16px;
  font-weight:800;
  color:var(--ink);
  margin:0 0 4px;
}
.dir-subtitle{
  font-size:12.5px;
  font-weight:600;
  color:var(--gray);
  margin:0;
}
.tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#fff;
  border-radius:14px;
  padding:4px;
  margin-bottom:18px;
  box-shadow:0 1px 2px rgba(28,23,48,0.04);
}
.tab{
  border:none;
  background:transparent;
  font-family:inherit;
  font-size:13px;
  font-weight:800;
  color:var(--gray);
  padding:10px 0;
  border-radius:10px;
  cursor:pointer;
  transition:background 0.15s ease, color 0.15s ease;
}
.tab.active{
  background:var(--purple);
  color:#fff;
}
.dir-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.dir-card{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border-radius:18px;
  padding:14px;
  text-decoration:none;
  color:inherit;
  box-shadow:0 1px 2px rgba(28,23,48,0.04), 0 8px 20px -14px rgba(93,33,182,0.3);
  border:1.5px solid transparent;
  transition:border-color 0.15s ease, transform 0.15s ease;
}
.dir-card:hover{
  border-color:var(--purple-light);
  transform:translateY(-1px);
}
.dir-card:focus-visible{
  outline:2px solid var(--purple);
  outline-offset:2px;
}
.dir-avatar{
  width:44px;
  height:44px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0;
  background:var(--purple-pale);
}
.dir-avatar-fallback{
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--purple-pale);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-size:15px;
  font-weight:800;
  color:var(--purple);
}
.dir-info{flex:1; min-width:0;}
.dir-name{
  font-size:14.5px;
  font-weight:800;
  color:var(--ink);
  margin:0 0 2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dir-role{
  font-size:12.5px;
  font-weight:600;
  color:var(--gray);
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dir-cta{
  font-size:12px;
  font-weight:800;
  color:var(--purple);
  white-space:nowrap;
  flex-shrink:0;
}
.dir-empty{
  text-align:center;
  font-size:13px;
  font-weight:600;
  color:var(--gray-light);
  padding:24px 8px;
}
