.pcr-form, .pcr-directory { max-width: 1100px; margin: 0 auto; }
.pcr-form fieldset { border: 1px solid #d7dde3; border-radius: 12px; padding: 22px; margin: 0 0 26px; background: #fff; }
.pcr-form legend { font-weight: 800; font-size: 1.15rem; padding: 0 10px; color: #263942; }
.pcr-field { margin: 0 0 18px; }
.pcr-field-label { display: block; margin-bottom: 7px; }
.pcr-required-star { color: #c62828; font-weight: 800; }
.pcr-field input[type="text"], .pcr-field input[type="email"], .pcr-field input[type="url"], .pcr-field select, .pcr-field textarea { width: 100%; max-width: 760px; padding: 9px 10px; border: 1px solid #ccd3d9; border-radius: 6px; background: #fff; }
.pcr-field input:required:invalid, .pcr-field select:required:invalid, .pcr-field textarea:required:invalid, .pcr-field.pcr-invalid { border-color: #d32f2f !important; }
.pcr-field.pcr-invalid { padding: 10px; border: 1px solid #d32f2f; border-radius: 8px; background: #fff6f6; }
.pcr-checkgroup { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px 26px; margin-top: 8px; max-width: 760px; }
.pcr-checkgroup label, .pcr-single-checkbox { display: flex !important; align-items: center; gap: 8px; margin: 0; font-weight: 500; }
.pcr-form input[type="checkbox"], .pcr-form input[type="radio"] { appearance: auto !important; -webkit-appearance: auto !important; opacity: 1 !important; position: static !important; width: 18px !important; height: 18px !important; min-width: 18px !important; min-height: 18px !important; margin: 0 6px 0 0 !important; visibility: visible !important; display: inline-block !important; vertical-align: middle; accent-color: #36474f; }
.pcr-checkbox-required-proxy, .pcr-matrix-required-proxy { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.pcr-matrix-wrap { overflow-x: auto; max-width: 100%; margin-top: 10px; }
.pcr-matrix { width: 100%; max-width: 860px; border-collapse: separate; border-spacing: 0 6px; }
.pcr-matrix th, .pcr-matrix td { padding: 12px 14px; text-align: center; }
.pcr-matrix thead th { font-weight: 700; color: #172b3a; background: #fff; }
.pcr-matrix tbody th { width: 34%; text-align: left; font-weight: 500; background: #f7f7f7; border-radius: 6px 0 0 6px; }
.pcr-matrix tbody td { background: #f7f7f7; }
.pcr-matrix tbody td:last-child { border-radius: 0 6px 6px 0; }
.pcr-radio-cell { display: inline-flex !important; justify-content: center; align-items: center; margin: 0 !important; }
.pcr-help { display: block; color: #65717d; font-size: .9em; font-weight: 400; }
.pcr-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.pcr-submit, .pcr-directory-filters button, .pcr-profile-link { display: inline-block; padding: 10px 16px; border-radius: 6px; border: 0; background: #36474f; color: #fff !important; text-decoration: none; cursor: pointer; }
.pcr-message { padding: 12px 14px; border-radius: 6px; margin-bottom: 18px; }
.pcr-success { background: #e8f6ee; border: 1px solid #a9d8b9; }
.pcr-error { background: #fdeeee; border: 1px solid #e3a1a1; }
.pcr-directory-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 220px 220px auto; gap: 10px; margin: 0 0 24px; align-items: center; }
.pcr-directory-filters input, .pcr-directory-filters select { padding: 9px 10px; border: 1px solid #ccd3d9; border-radius: 6px; }
.pcr-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.pcr-list { display: grid; gap: 12px; }
.pcr-consultant { border: 1px solid #d7dde3; border-radius: 12px; padding: 18px; background: #fff; display: flex; gap: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
.pcr-list .pcr-consultant { align-items: flex-start; }
.pcr-avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.pcr-consultant h3 { margin: 0 0 4px; }
.pcr-meta { color: #5b6872; margin-top: 0; }
.pcr-profile-fields { display: grid; grid-template-columns: minmax(160px, 260px) 1fr; gap: 8px 18px; }
.pcr-profile-fields dt { font-weight: 700; color: #36474f; }
.pcr-profile-fields dd { margin: 0 0 10px; }
@media (max-width: 760px) { .pcr-directory-filters { grid-template-columns: 1fr; } .pcr-consultant { display: block; } .pcr-profile-fields { grid-template-columns: 1fr; } .pcr-matrix th, .pcr-matrix td { padding: 10px 8px; } }

.pcr-view-switcher { display: flex; gap: 8px; justify-content: flex-end; margin: -10px 0 18px; }
.pcr-switch-button, .pcr-back-link { display: inline-block; padding: 8px 13px; border: 1px solid #cfd7de; border-radius: 6px; background: #fff; color: #36474f; text-decoration: none; font-weight: 600; }
.pcr-switch-button.is-active { background: #36474f; color: #fff; border-color: #36474f; }
.pcr-back-link { margin-bottom: 18px; }
@media (max-width: 760px) { .pcr-view-switcher { justify-content: flex-start; } }

.pcr-other-country-wrap{margin-top:10px;padding:10px 12px;background:#f7f7f7;border-left:3px solid #ccd0d4;}
.pcr-other-country-wrap input{margin-top:6px;width:100%;max-width:520px;}

/* UI-1 visual upgrade */
.pcr-directory { --pcr-dark:#263942; --pcr-soft:#f4f7f9; --pcr-border:#dce3e8; --pcr-muted:#667784; }
.pcr-directory-filters { position: sticky; top: 16px; z-index: 10; padding: 14px; background: rgba(255,255,255,.96); border: 1px solid var(--pcr-border); border-radius: 16px; box-shadow: 0 10px 26px rgba(31,49,59,.08); backdrop-filter: blur(6px); }
.pcr-modern-card { border-radius: 18px; border: 1px solid var(--pcr-border); box-shadow: 0 12px 28px rgba(31,49,59,.08); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.pcr-modern-card:hover { transform: translateY(-2px); box-shadow: 0 18px 34px rgba(31,49,59,.12); border-color: #b9c7d1; }
.pcr-card-top { display:flex; gap:14px; align-items:center; width:100%; }
.pcr-card-heading h3 { margin:0 0 4px; line-height:1.2; }
.pcr-avatar-placeholder { display:flex; align-items:center; justify-content:center; background:#36474f; color:#fff; font-weight:800; font-size:1.35rem; }
.pcr-card-bio { color:#394b56; }
.pcr-expertise-badges { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 12px; }
.pcr-badge { display:inline-flex; align-items:center; gap:6px; border:1px solid #d8e1e7; background:#f7fafc; border-radius:999px; padding:5px 9px; font-size:.86rem; line-height:1.2; }
.pcr-badge strong { letter-spacing:1px; color:#b67800; font-size:.82rem; }
.pcr-badge-more { background:#36474f; color:#fff; border-color:#36474f; }
.pcr-work-type { margin-bottom:8px; }
.pcr-view-list .pcr-modern-card { display:block; }
.pcr-view-list .pcr-card-top { margin-bottom:10px; }

.pcr-profile-modern { max-width:1180px; margin:0 auto; }
.pcr-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:26px; align-items:start; }
.pcr-profile-main, .pcr-profile-sidebar { min-width:0; }
.pcr-profile-section, .pcr-sidebar-card { border:1px solid #dce3e8; border-radius:18px; background:#fff; padding:22px; box-shadow:0 10px 24px rgba(31,49,59,.06); margin-bottom:18px; }
.pcr-profile-intro h2 { margin-top:0; }
.pcr-profile-sidebar { position:sticky; top:20px; }
.pcr-profile-photo { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:18px; margin-bottom:16px; font-size:4rem; }
.pcr-download-button { display:block; text-align:center; padding:11px 14px; border-radius:10px; background:#36474f; color:#fff !important; text-decoration:none; font-weight:700; margin-top:14px; }
.pcr-expertise-list { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.pcr-expertise-list li { display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(95px,auto); gap:12px; align-items:center; padding:10px 12px; background:#f7fafc; border:1px solid #e3e9ee; border-radius:10px; }
.pcr-stars { color:#b67800; letter-spacing:2px; white-space:nowrap; }
.pcr-level-label { color:#65717d; font-size:.92rem; }
.pcr-software-table-wrap { overflow-x:auto; }
.pcr-software-table { width:100%; border-collapse:separate; border-spacing:0; border:1px solid #dce3e8; border-radius:14px; overflow:hidden; }
.pcr-software-table th, .pcr-software-table td { padding:12px 14px; border-bottom:1px solid #e6ecef; text-align:center; }
.pcr-software-table th:first-child { text-align:left; }
.pcr-software-table thead th { background:#f4f7f9; color:#263942; font-weight:800; }
.pcr-software-table tbody tr:last-child th, .pcr-software-table tbody tr:last-child td { border-bottom:0; }
.pcr-checkmark { font-size:1.15rem; }
.pcr-timeline { position:relative; margin:0; padding-left:24px; list-style:none; }
.pcr-timeline:before { content:""; position:absolute; left:6px; top:4px; bottom:4px; width:2px; background:#dce3e8; }
.pcr-timeline li { position:relative; margin:0 0 12px; padding:10px 12px; background:#f7fafc; border-radius:10px; border:1px solid #e3e9ee; }
.pcr-timeline li:before { content:""; position:absolute; left:-22px; top:16px; width:10px; height:10px; border-radius:50%; background:#36474f; }
.pcr-live-empty { padding:18px; border:1px dashed #cfd8df; border-radius:12px; background:#f9fbfc; }

@media (max-width: 900px) {
  .pcr-profile-grid { grid-template-columns:1fr; }
  .pcr-profile-sidebar { position:static; }
  .pcr-profile-photo { max-width:220px; }
}
@media (max-width: 640px) {
  .pcr-directory-filters { position:static; grid-template-columns:1fr; }
  .pcr-card-top { align-items:flex-start; }
  .pcr-expertise-list li { grid-template-columns:1fr; gap:4px; }
  .pcr-software-table th, .pcr-software-table td { padding:10px 8px; font-size:.92rem; }
}

/* UI-1.1 corrections: readable card mode and single-column profile */
.pcr-cards { grid-template-columns: 1fr !important; }
.pcr-view-cards .pcr-modern-card { display: block; }
.pcr-view-cards .pcr-card-top { display: block; }
.pcr-view-cards .pcr-avatar { width: 92px; height: 92px; margin: 0 0 14px; }
.pcr-view-cards .pcr-card-heading h3 { font-size: 1.6rem; overflow-wrap: normal; word-break: normal; hyphens: none; }
.pcr-view-cards .pcr-card-heading,
.pcr-view-cards .pcr-consultant-body { width: 100%; min-width: 0; }
.pcr-view-cards .pcr-modern-card { max-width: 760px; }
.pcr-view-cards .pcr-card-bio { max-width: 68ch; }

.pcr-profile-stack { display: block; max-width: 860px; margin: 0 auto; }
.pcr-profile-grid { display: block !important; }
.pcr-profile-header { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 22px; align-items: start; }
.pcr-profile-header .pcr-profile-photo { width: 150px; height: 150px; aspect-ratio: 1/1; margin: 0; border-radius: 18px; }
.pcr-profile-header h2 { overflow-wrap: normal; word-break: normal; hyphens: none; }
.pcr-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 22px; align-items: end; }
.pcr-contact-grid p { margin: 0; }
.pcr-contact-grid .pcr-download-button { margin: 0; }

@media (max-width: 640px) {
  .pcr-view-cards .pcr-modern-card { max-width: none; }
  .pcr-profile-header { grid-template-columns: 1fr; }
  .pcr-profile-header .pcr-profile-photo { width: 120px; height: 120px; }
}

/* UI-2 / v1.5.0: multi-card directory and enhanced form UX */
.pcr-view-cards .pcr-cards {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch;
}
.pcr-view-cards .pcr-modern-card {
  max-width: none !important;
  width: 100%;
  display: flex !important;
  flex-direction: column;
  gap: 12px;
}
.pcr-view-cards .pcr-card-top {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.pcr-view-cards .pcr-avatar {
  width: 86px;
  height: 86px;
  margin: 0;
  flex: 0 0 auto;
}
.pcr-view-cards .pcr-card-heading h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  line-height: 1.12;
  margin: 0 0 8px;
  overflow-wrap: anywhere;
  word-break: normal;
}
.pcr-view-cards .pcr-card-bio {
  max-width: none !important;
}
.pcr-view-cards .pcr-expertise-badges {
  margin-top: 8px;
}
@media (min-width: 1180px) {
  .pcr-view-cards .pcr-cards { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 760px) {
  .pcr-view-cards .pcr-cards { grid-template-columns: 1fr !important; }
}

.pcr-enhanced-form { position: relative; }
.pcr-form-progress {
  position: sticky;
  top: 0;
  z-index: 5;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
  border: 1px solid #dce3e8;
  border-radius: 16px;
  padding: 14px 16px;
  margin: 0 0 20px;
  box-shadow: 0 10px 24px rgba(31,49,59,.06);
}
.pcr-progress-bar { height: 8px; background: #eef3f6; border-radius: 999px; overflow: hidden; margin-bottom: 12px; }
.pcr-progress-bar span { display:block; height:100%; background:#36474f; border-radius:999px; transition: width .25s ease; }
.pcr-form-progress ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.pcr-form-progress li { display:inline-flex; align-items:center; gap:6px; color:#5e6b76; font-size:.88rem; padding:5px 8px; border:1px solid #e2e8ed; border-radius:999px; background:#f8fafb; }
.pcr-form-progress li span { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:999px; background:#e7eef2; color:#36474f; font-weight:800; font-size:.78rem; }
.pcr-form-progress li.pcr-step-active { border-color:#36474f; color:#263942; background:#fff; }
.pcr-form-progress li.pcr-step-active span, .pcr-form-progress li.pcr-step-complete span { background:#36474f; color:#fff; }
.pcr-autosave-note { margin:10px 0 0; font-size:.86rem; color:#65717d; }

.pcr-form-section { border:1px solid #dce3e8; border-radius:16px; background:#fff; margin:0 0 18px; padding:0; overflow:hidden; box-shadow:0 8px 20px rgba(31,49,59,.045); }
.pcr-form-section legend { width:100%; padding:0; margin:0; display:block; }
.pcr-section-toggle { width:100%; border:0; background:#f7fafc; color:#263942; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; font-weight:800; font-size:1.05rem; cursor:pointer; text-align:left; }
.pcr-section-toggle em { font-style:normal; font-size:.82rem; color:#65717d; font-weight:700; }
.pcr-section-body { padding:18px; }
.pcr-form-section.pcr-collapsed .pcr-section-body { display:none; }
.pcr-form-section.pcr-collapsed .pcr-section-toggle em::before { content:'Expand'; }
.pcr-form-section.pcr-collapsed .pcr-section-toggle em { font-size:0; }
.pcr-form-section.pcr-collapsed .pcr-section-toggle em::before { font-size:.82rem; }
.pcr-submit-row { margin-top:22px; }

.pcr-field.pcr-touched-invalid input,
.pcr-field.pcr-touched-invalid select,
.pcr-field.pcr-touched-invalid textarea,
.pcr-field.pcr-invalid input,
.pcr-field.pcr-invalid select,
.pcr-field.pcr-invalid textarea { border-color:#c0392b !important; box-shadow:0 0 0 3px rgba(192,57,43,.12); }
.pcr-field.pcr-touched-valid input:not([type='checkbox']):not([type='radio']),
.pcr-field.pcr-touched-valid select,
.pcr-field.pcr-touched-valid textarea { border-color:#7ca982; }
.pcr-field.pcr-touched-invalid .pcr-field-label::after,
.pcr-field.pcr-invalid .pcr-field-label::after { content:' Required'; color:#c0392b; font-weight:700; font-size:.82rem; margin-left:6px; }

.pcr-drag-field { border:1px dashed #cfd8df; border-radius:14px; padding:14px; background:#fbfcfd; transition: border-color .2s ease, background .2s ease; }
.pcr-drag-field input[type='file'] { width:100%; }
.pcr-drag-field::after { content:'Drag and drop a file here, or click to browse.'; display:block; margin-top:8px; color:#65717d; font-size:.88rem; }
.pcr-drag-field.pcr-drag-over { border-color:#36474f; background:#eef4f6; }
.pcr-file-name { display:block; margin-top:8px; color:#263942; font-size:.9rem; font-weight:700; }

@media (max-width: 640px) {
  .pcr-form-progress { position: static; }
  .pcr-form-progress ol { display:grid; grid-template-columns:1fr 1fr; }
  .pcr-section-body { padding:14px; }
}

/* v1.5.3: advanced generic directory additions restored without overriding form controls */
.pcr-directory-filters .pcr-filter-main-row,
.pcr-directory-filters .pcr-filter-secondary-row { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:10px; align-items:center; }
.pcr-directory-filters .pcr-filter-secondary-row { grid-template-columns:1fr 1fr; margin-top:10px; }
.pcr-advanced-toggle { margin-top:10px; background:#fff !important; color:#36474f !important; border:1px solid #36474f !important; }
.pcr-advanced-panel { margin-top:10px; border-top:1px solid #dce3e8; padding-top:10px; }
.pcr-sort-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:10px; }
.pcr-sort-row span { font-weight:700; margin-right:4px; color:#263942; }
.pcr-sort-button { background:#fff !important; color:#36474f !important; border:1px solid #cfd7de !important; border-radius:8px; padding:8px 12px; cursor:pointer; }
.pcr-sort-button.is-active { background:#36474f !important; color:#fff !important; border-color:#36474f !important; }
.pcr-directory-results.is-loading { opacity:.55; pointer-events:none; }
.pcr-pagination { display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:22px 0; }
.pcr-page-link { border:1px solid #cfd7de; border-radius:8px; padding:7px 11px; text-decoration:none; background:#fff; color:#36474f; }
.pcr-page-link.is-active { background:#36474f; border-color:#36474f; color:#fff; }
.pcr-profile-badges { display:flex; flex-wrap:wrap; gap:6px; margin:.35rem 0 .6rem; }
.pcr-status-badge { display:inline-flex; align-items:center; border-radius:999px; padding:4px 9px; font-size:.78rem; font-weight:700; background:#eef2f6; color:#36474f; }
.pcr-availability-badge { background:#e8f1f4; color:#254955; }
.pcr-verified-badge { background:#dff7e7; color:#08722d; }
.pcr-recent-badge { background:#fff4d8; color:#8a5a00; }
.pcr-admin-verified { background:#dff7e7; color:#08722d; border-radius:999px; padding:3px 8px; font-weight:700; }
@media (max-width:900px){ .pcr-directory-filters .pcr-filter-main-row{grid-template-columns:1fr;} }
@media (max-width:640px){ .pcr-directory-filters .pcr-filter-secondary-row{grid-template-columns:1fr;} }


/* v1.5.4 consolidation: restore v1.5.2 generic directory layout while keeping v1.5.3 form fixes */
.pcr-directory .pcr-directory-filters{
  display:block !important;
  position:sticky;
  top:16px;
  z-index:10;
  background:rgba(255,255,255,.96);
  border:1px solid #dce3e8;
  border-radius:16px;
  padding:14px;
  margin:0 0 18px;
  box-shadow:0 10px 26px rgba(31,49,59,.08);
}
.pcr-directory .pcr-filter-main-row{
  display:grid !important;
  grid-template-columns:2fr 1fr 1fr auto !important;
  gap:10px;
  align-items:center;
}
.pcr-directory .pcr-filter-secondary-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px;
  margin-top:10px;
}
.pcr-directory .pcr-view-switcher{
  display:flex !important;
  gap:8px;
  justify-content:flex-end;
  margin:0 0 16px;
}
.pcr-directory .pcr-switch-button{
  display:inline-block;
  border:1px solid #36474f;
  background:#fff;
  color:#36474f !important;
  border-radius:10px;
  padding:9px 13px;
  text-decoration:none;
  line-height:1.2;
}
.pcr-directory .pcr-switch-button.is-active{
  background:#36474f;
  color:#fff !important;
}
.pcr-directory.pcr-view-cards .pcr-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}
.pcr-directory.pcr-view-list .pcr-list{
  display:grid !important;
  gap:12px !important;
}
.pcr-directory .pcr-advanced-toggle{
  display:inline-block;
  margin-top:10px;
  background:#fff !important;
  color:#36474f !important;
  border:1px solid #36474f !important;
  border-radius:10px;
  padding:9px 13px;
}
.pcr-directory .pcr-advanced-panel{
  margin-top:10px;
  border-top:1px solid #dce3e8;
  padding-top:10px;
}
.pcr-directory .pcr-sort-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;}
.pcr-directory .pcr-sort-row span{font-weight:700;margin-right:4px;color:#263942;}
.pcr-directory .pcr-sort-button{background:#fff !important;color:#36474f !important;border:1px solid #cfd7de !important;border-radius:8px;padding:8px 12px;cursor:pointer;}
.pcr-directory .pcr-sort-button.is-active{background:#36474f !important;color:#fff !important;border-color:#36474f !important;}
.pcr-directory-results.is-loading{opacity:.55;pointer-events:none;}
@media (max-width:900px){
  .pcr-directory.pcr-view-cards .pcr-cards{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .pcr-directory .pcr-filter-main-row{grid-template-columns:1fr !important;}
}
@media (max-width:640px){
  .pcr-directory.pcr-view-cards .pcr-cards{grid-template-columns:1fr !important;}
  .pcr-directory .pcr-filter-secondary-row{grid-template-columns:1fr !important;}
  .pcr-directory .pcr-directory-filters{position:relative;top:auto;}
  .pcr-directory .pcr-view-switcher{justify-content:flex-start;}
}
