/* Compatibility with the existing DEV markup. Claude's pp-card-v3.css is unchanged. */
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  border-radius: 22px;
  padding: 20px;
  box-shadow: none;
}
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__link,
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__footer { display: contents; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__company { grid-column: 1 / -1; grid-row: 1; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__meta { grid-column: 1 / -1; grid-row: 2; margin: 0 0 12px; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__title { grid-column: 1 / -1; grid-row: 3; font-family: var(--c3-f); }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__chips { grid-column: 1 / -1; grid-row: 4; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__salary { grid-column: 1; grid-row: 5; align-self: stretch; display: flex; align-items: center; border-top: 1px solid var(--c3-line); padding: 12px 8px 0 0; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-actions { grid-column: 2; grid-row: 5; border-top: 1px solid var(--c3-line); padding-top: 12px; align-self: stretch; align-items: center; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-card-heart { min-height: 42px; flex: 0 0 42px; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-report-vacancy:hover,
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-report-vacancy.is-active { color: var(--c3-warn); background: var(--c3-warn-bg); border-color: var(--c3-warn); }
/* Native radio markup wraps its text in a span. Keep exactly one radio and border. */
.pp-modal-shell .pp-modal .pp-report-option { position: relative; }
.pp-modal-shell .pp-modal .pp-report-option input { position: static; opacity: 1; clip: auto; overflow: visible; height: 20px; min-width: 20px; }
.pp-modal-shell .pp-modal .pp-report-option span { position: static; display: block; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; font: inherit; color: inherit; }
.pp-modal-shell .pp-modal .pp-report-option span::before { content: none; }
.pp-modal-shell .pp-modal .pp-report-option input:checked + span { border: 0; background: transparent; }
/* Keep the salary/action row at the bottom of equal-height native cards. */
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__body { grid-template-rows: auto auto auto 1fr auto; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__chips { align-self: start; }
@media (hover: hover) {
  body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2:hover .pp-vacancy-card-v2__body { box-shadow: 0 18px 40px rgba(42,98,161,.14); }
}
/* Legacy close-button padding must not turn Claude's circle into an ellipse. */
.pp-modal-shell .pp-modal .pp-modal-close { box-sizing: border-box; padding: 0; min-width: 38px; min-height: 38px; }
/* Screenshot refinement: native publication under company and demo icon order. */
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__body { grid-template-rows: auto auto 1fr auto; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__company { grid-row: 1; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__company-text > :is(.pp-vacancy-card-v2__meta, .pp-vacancy-card-v2__published) { display: block; margin: 4px 0 0; white-space: normal; font: 400 13px/1.4 var(--c3-f); }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__title { grid-row: 2; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__chips { grid-row: 3; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__salary,
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-actions { grid-row: 4; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-actions .pp-report-vacancy { order: 0; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-actions .pp-card-heart:not(.pp-report-vacancy):not(.pp-card-heart--report) { order: 1; }
@media (min-width: 1100px) {
  body.pp-listing-ui-v2:is(.page-vacancies,.page-bookmarks) .pp-refresh .pp-listing-results { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
/* Native Drupal login/registration forms, displayed without changing their handlers. */
.pp-card-auth-shell .pp-modal { width: min(520px, 100%); }
.pp-card-auth-shell .pp-card-auth-tabs { display: flex; gap: 8px; margin: 18px 0; }
.pp-card-auth-shell .pp-card-auth-tabs button { flex: 1; border: 1px solid var(--c3-line); border-radius: 12px; padding: 12px 8px; background: white; font: 600 14px var(--c3-f); color: var(--c3-ink); cursor: pointer; }
.pp-card-auth-shell .pp-card-auth-tabs button[aria-pressed="true"] { background: var(--c3-tint); border-color: var(--c3-accent); }
.pp-card-auth-shell form { width: 100%; max-width: none; margin: 0; }
.pp-card-auth-shell .form-item { float: none; width: 100%; margin: 14px 0; }
.pp-card-auth-shell input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]),
.pp-card-auth-shell textarea { box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px; border: 1px solid var(--c3-line); border-radius: 12px; font: 400 16px var(--c3-f); }
.pp-card-auth-shell input[type=submit], .pp-card-auth-shell button[type=submit] { width: 100%; min-height: 48px; margin-top: 12px; border: 0; border-radius: 12px; background: var(--c3-accent); color: white; font: 700 16px var(--c3-f); cursor: pointer; }
.pp-card-auth-shell .pp-card-auth-help { margin: 18px 0 0; font-size: 14px; }
.pp-card-auth-shell a { color: var(--c3-accent); }

/* Mobile report sheet: retain native placement and form behavior. */
@keyframes pp-card-report-sheet-in { from { transform:translateY(100%); } to { transform:translateY(0); } }
@media (max-width:560px) and (prefers-reduced-motion:no-preference) { .pp-modal-shell:not(.pp-card-auth-shell) .pp-modal { animation:pp-card-report-sheet-in .25s ease-out; } }

/* Owner correction: wider, horizontal card proportions, preserving native markup. */
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 { max-width:none; width:100%; margin:0; }
@media (min-width:1100px) {
 body.pp-listing-ui-v2.page-front .pp-refresh .pp-home-feed-main .pp-vacancies-view > .vws-content { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.pp-listing-ui-v2:is(.page-vacancies,.page-bookmarks) .pp-refresh .pp-listing-results { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__body { min-height:0; height:100%; grid-template-columns:minmax(0,1fr) auto; }
body.pp-listing-ui-v2.pp-listing-ui-v2 .pp-refresh .pp-vacancy-card-v2 .pp-vacancy-card-v2__salary { min-width:0; white-space:normal; overflow-wrap:anywhere; }
