.cvp-app {
  --cvp-wine: #9d2c1e;
  --cvp-border: #d9d9d9;
  --cvp-muted: #404040;
  max-width: 920px;
  margin: 0 auto;
  color: #222;
}

.cvp-app *, .cvp-app *::before, .cvp-app *::after { box-sizing: border-box; }
.cvp-app [hidden] { display: none !important; }
.cvp-card { border: 1px solid var(--cvp-border); border-radius: 10px; padding: 18px; margin: 18px 0; background: #fff; }
.cvp-row { display: flex; gap: 10px; align-items: center; }
.cvp-login-row input, .cvp-search-row input { flex: 1; }
.cvp-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 12px 0; }
.cvp-toolbar-actions { display: flex; gap: 8px; }
.cvp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.cvp-wide { grid-column: 1 / -1; }
.cvp-app > h2, .cvp-app #cvp-volunteer { color: #fff !important; }
.cvp-app #cvp-volunteer { font-weight: 700; }
.cvp-app label, .cvp-app legend { color: #222 !important; }
.cvp-app label, .cvp-app legend { font-weight: 600; }
.cvp-app input[type="text"], .cvp-app input[type="password"], .cvp-app input[type="search"],
.cvp-app input[type="tel"], .cvp-app input[type="email"], .cvp-app select, .cvp-app textarea {
  width: 100%; margin-top: 5px; border: 1px solid #aaa; border-radius: 5px; padding: 10px; font: inherit; background: #fff;
}
.cvp-app fieldset { border: 1px solid var(--cvp-border); border-radius: 6px; padding: 10px 12px; }
.cvp-checks { display: flex; flex-wrap: wrap; gap: 14px; }
.cvp-checks label { font-weight: 400; }
.cvp-app button { border: 0; border-radius: 5px; padding: 10px 16px; background: var(--cvp-wine); color: #fff; font-weight: 700; cursor: pointer; }
.cvp-app button:hover { filter: brightness(.93); }
.cvp-app button:disabled { opacity: .55; cursor: wait; }
.cvp-app button.cvp-secondary { background: #555; }
.cvp-form-actions { display: flex; gap: 10px; margin-top: 14px; }
.cvp-app button.cvp-danger { background: #7a1712; }
.cvp-message { padding: 11px 13px; border-radius: 6px; margin: 12px 0; }
.cvp-message.info { background: #eef5fb; color: #173f63; }
.cvp-message.success { background: #edf7ed; color: #245c2a; }
.cvp-message.error { background: #fbeaea; color: #8a1e15; }
.cvp-results { display: grid; gap: 7px; margin-top: 12px; max-height: 390px; overflow: auto; }
.cvp-stage-title { margin: 14px 0 2px; padding: 7px 10px; background: #f3e7e4; color: var(--cvp-wine) !important; border-left: 4px solid var(--cvp-wine); font-size: 1.08rem; }
.cvp-stage-title:first-child { margin-top: 0; }
.cvp-result { display: flex; flex-direction: column; align-items: flex-start; text-align: left; background: #f6f6f6 !important; color: #222 !important; border: 1px solid var(--cvp-border) !important; }
.cvp-result span { color: var(--cvp-muted); font-weight: 400; font-size: .92em; }

@media (max-width: 680px) {
  .cvp-grid { grid-template-columns: 1fr; }
  .cvp-wide { grid-column: auto; }
  .cvp-row, .cvp-search-row { align-items: stretch; flex-direction: column; }
  .cvp-row button { width: 100%; }
  .cvp-toolbar { align-items: stretch; flex-direction: column; }
  .cvp-toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cvp-form-actions { display: grid; grid-template-columns: 1fr; }
}
