.pulls-layout, .pulls-wall-section { max-width: 980px; }
.pulls-layout { display: grid; gap: 18px; }
.pulls-wall-section { padding-top: 0; }
.pulls-wall-section h2 { margin: 0 0 12px; }
.pull-form, .pull-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
  padding: 12px;
}
.pull-card { min-height: 0; }
.pull-form { display: grid; gap: 12px; }
.pull-form label { display: grid; gap: 6px; font-weight: 800; }
.pull-form textarea, .pull-form input[type="file"] {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  background: #fff;
}
.pull-form fieldset { border: 0; margin: 0; padding: 0; }
.star-rate {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 6px;
  width: max-content;
}
.star-rate input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.star-rate label {
  color: #c5ccd3;
  font-size: 2.4rem;
  line-height: 1;
  cursor: pointer;
  user-select: none;
}
.star-rate label:hover,
.star-rate label:hover ~ label,
.star-rate input:checked + label,
.star-rate input:checked ~ label,
.star-rate input:focus-visible + label {
  color: #f5b400;
}
.star-value { margin: 4px 0 0; font-weight: 800; }
.photo-preview, .pull-photos { display: flex; flex-wrap: wrap; gap: 4px; }
.photo-preview img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.pull-photos img { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.pull-photos button { border: 0; padding: 0; background: transparent; cursor: pointer; }
.form-status { min-height: 1.2em; margin: 0; font-weight: 800; }
.form-status.is-error { color: var(--red); }
.form-status.is-ok { color: var(--green); }
.hp { position: absolute; left: -9999px; }
.pull-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.pull-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.92rem; }
.pull-card h3, .pull-card p { margin: 0; }
.stars { color: #f5b400; letter-spacing: 1px; }
.pull-card header { display: flex; justify-content: space-between; gap: 12px; }
.lightbox[hidden] { display: none !important; }
.lightbox {
  position: fixed; inset: 0; z-index: 80; display: grid; place-items: center;
  background: rgba(8, 12, 20, 0.86); padding: 24px;
}
.lightbox img { max-width: min(960px, 100%); max-height: 86vh; border-radius: 16px; }
.lightbox-close {
  position: absolute; top: 16px; right: 16px; width: 44px; height: 44px;
  border: 0; border-radius: 999px; background: #fff; font-size: 1.6rem; cursor: pointer;
}
