body{
  margin:0;
  min-height:100vh;
  background:url("/static/home_bg.svg") center/cover no-repeat fixed;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:#1f2a24;
}

.shell{
  max-width:980px;
  margin:0 auto;
  padding:14px 14px 96px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.title{
  font-size:26px;
  font-weight:900;
  letter-spacing:-0.03em;
  color:#1f2a24;
}

.actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn{
  appearance:none;
  border:none;
  border-radius:12px;
  padding:10px 14px;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  background:#edf3ef;
  color:#27463a;
}

.main{
  display:block;
}

.hint{
  font-size:14px;
  color:rgba(31,42,36,.72);
  margin:4px 0 10px;
}

.list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.event-row{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:inherit;
  background:rgba(255,255,255,.70);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.55);
  border-radius:16px;
  padding:10px 12px;
  box-shadow:0 8px 18px rgba(0,0,0,.06);
}

.event-row:hover{
  transform:translateY(-1px);
}

.event-photo{
  width:60px;
  height:60px;
  min-width:60px;
  border-radius:12px;
  object-fit:cover;
  background:#ececec;
  border:1px solid rgba(0,0,0,.06);
}

.event-photo-placeholder{
width:60px;
height:60px;
min-width:60px;
border-radius:12px;
display:flex;
align-items:center;
justify-content:center;
background:linear-gradient(180deg,#f6f6f7 0%, #ececef 100%);
color:#4c5f57;
font-size:30px;
border:1px solid rgba(40,60,45,.08);
box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.event-main{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.event-top{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.event-cat{
  font-size:16px;
  font-weight:900;
  letter-spacing:-0.02em;
  color:#1f2a24;
  white-space:nowrap;
}

.event-address{
  font-size:14px;
  color:rgba(31,42,36,.78);
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.event-bottom{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:13px;
  color:rgba(31,42,36,.76);
  font-weight:700;
}

.event-badge-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:88px;
}

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:74px;
  padding:7px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
}

.badge-open{
  background:rgba(39,70,58,.14);
  color:#27463a;
}

.badge-pending{
  background:rgba(245,194,35,.20);
  color:#8a6800;
}

.badge-closed{
  background:rgba(120,120,120,.18);
  color:#5c5c5c;
}

.tabbar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:6px;
  padding:10px 8px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  border-top:1px solid rgba(0,0,0,.08);
}

.tab{
  text-decoration:none;
  font-size:13px;
  font-weight:800;
  color:#45524b;
}

.tab-active{
  color:#27463a;
}

.tab-admin{
  color:#b3261e;
}

@media (max-width: 640px){
  .shell{
    padding:12px 10px 92px;
  }

  .title{
    font-size:22px;
  }

  .event-row{
    gap:10px;
    padding:10px;
    border-radius:14px;
  }

  .event-photo,
  .event-photo-placeholder{
    width:60px;
    height:60px;
    min-width:60px;
  }

  .event-cat{
    font-size:15px;
  }

  .event-address{
    font-size:13px;
  }

  .event-bottom{
    gap:8px;
    font-size:12px;
  }

  .event-badge-wrap{
    min-width:76px;
  }

  .badge{
    min-width:66px;
    padding:6px 8px;
    font-size:11px;
  }
}
