.nav-link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(71 85 105);
}
.nav-link:hover { background: rgb(248 250 252); color: rgb(15 23 42); }
.nav-link-active { background: rgb(15 23 42); color: white; }
.tab-item {
  min-height: 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  font-size: 10px;
  font-weight: 600;
}
.bottom-nav { padding-bottom: env(safe-area-inset-bottom); }
.card {
  background: white;
  border: 1px solid rgb(226 232 240 / 0.8);
  border-radius: 1rem;
  box-shadow: 0 1px 2px 0 rgb(15 23 42 / 0.05);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 44px;
  padding: 0.55rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.btn-primary { background: rgb(15 23 42); color: white; }
.btn-primary:hover { background: rgb(30 41 59); }
.btn-ghost { background: white; color: rgb(15 23 42); border: 1px solid rgb(226 232 240); }
.field {
  width: 100%;
  min-height: 44px;
  border-radius: 0.75rem;
  border: 1px solid rgb(226 232 240);
  padding: 0.55rem 0.85rem;
  font-size: 0.95rem;
  background: white;
}
.field:focus { outline: 2px solid rgb(15 23 42 / 0.12); border-color: rgb(15 23 42); }
.badge { display: inline-flex; align-items: center; border-radius: 999px; border: 1px solid; padding: 0.15rem 0.6rem; font-size: 11px; font-weight: 600; }
.badge-open { background: rgb(255 251 235); color: rgb(146 64 14); border-color: rgb(253 230 138); }
.badge-done { background: rgb(236 253 245); color: rgb(6 95 70); border-color: rgb(167 243 208); }
.badge-arch { background: rgb(241 245 249); color: rgb(71 85 105); border-color: rgb(226 232 240); }
.thumb { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 0.75rem; border: 1px solid rgb(226 232 240); cursor: pointer; }
