/* FolioPool modern freelancer proposal modal */
.fp-proposal-modal {
  --fp-blue: #1947c4;
  --fp-blue-strong: #0b3fdb;
  --fp-blue-soft: #eef4ff;
  --fp-ink: #132d5d;
  --fp-text: #2f3e5c;
  --fp-muted: #6d7c98;
  --fp-border: #dbe5f7;
  --fp-danger: #c93645;
  --fp-success: #15803d;
}

.fp-proposal-modal .modal-dialog {
  width: min(1160px, calc(100vw - 32px));
  max-width: 1160px;
  margin-inline: auto;
}

.fp-proposal-modal__content {
  overflow: hidden;
  border: 1px solid rgba(203, 218, 245, .95);
  border-radius: 24px;
  background: #f8faff;
  box-shadow: 0 28px 90px rgba(8, 34, 88, .24);
}

.fp-proposal-modal__header {
  align-items: flex-start;
  gap: 24px;
  padding: 24px 28px 20px;
  border-bottom: 1px solid var(--fp-border);
  background: rgba(255, 255, 255, .97);
}

.fp-proposal-modal__heading {
  min-width: 0;
}

.fp-proposal-modal__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: var(--fp-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fp-proposal-modal__header h2 {
  margin: 0;
  color: #17233f;
  font-size: clamp(21px, 2.4vw, 29px);
  font-weight: 800;
  line-height: 1.25;
}

.fp-proposal-modal__header p {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--fp-muted);
  font-size: 18px;
  line-height: 1.6;
}

.fp-proposal-modal__close {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  margin: 0 !important;
  padding: 0;
  border: 1px solid var(--fp-border);
  border-radius: 12px;
  background-color: #f7f9fd;
  background-size: 13px;
  opacity: 1;
  transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.fp-proposal-modal__close:hover,
.fp-proposal-modal__close:focus-visible {
  transform: rotate(4deg);
  border-color: #b9caec;
  background-color: #edf3ff;
}

.fp-proposal-modal__body {
  max-height: min(74vh, 820px);
  padding: 0;
  background:
    radial-gradient(circle at 92% 6%, rgba(63, 110, 225, .08), transparent 27%),
    #f8faff;
}

.fp-proposal-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 22px;
  align-items: start;
  padding: 24px 26px 28px;
}

.fp-proposal-main {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.fp-proposal-section {
  padding: 22px;
  border: 1px solid var(--fp-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(30, 62, 124, .045);
}

.fp-proposal-section__heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}

.fp-proposal-step {
  display: inline-grid;
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(135deg, #1947c4, #0d5cff);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 7px 16px rgba(25, 71, 196, .2);
}

.fp-proposal-section__heading h3 {
  margin: 0;
  color: var(--fp-ink);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
}

.fp-proposal-section__heading p {
  margin: 3px 0 0;
  color: var(--fp-muted);
  font-size: 12px;
  line-height: 1.55;
}

.fp-proposal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.fp-proposal-grid--quote {
  margin-top: 16px;
}

.fp-form-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 10px;
}

.fp-form-field--full {
  grid-column: 1 / -1;
}

.fp-form-field > label,
.fp-segmented-fieldset legend,
.fp-label-row label {
  margin: 0;
  color: var(--fp-text);
  font-size: 12px;
  font-weight: 700;
}

.fp-form-field > label span,
.fp-label-row label span {
  color: var(--fp-danger);
}

.fp-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.fp-character-counter {
  color: #8996ad;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.fp-character-counter.is-near-limit {
  color: #b45309;
  font-weight: 700;
}

.fp-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fp-form-field select,
.fp-form-field textarea {
  width: 100%;
  min-height: 45px;
  border: 1px solid #cad7ed;
  border-radius: 12px;
  background: #fbfcff;
  color: #172746;
  font: inherit;
  font-size: 18px;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.fp-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fp-form-field select {
  padding: 10px 12px;
}

.fp-form-field textarea {
  min-height: 112px;
  padding: 12px 13px;
  resize: vertical;
}

.fp-form-field input:focus,
.fp-form-field select:focus,
.fp-form-field textarea:focus {
  border-color: #4d73d7;
  background: #fff;
  outline: 0;
  box-shadow: 0 0 0 4px rgba(25, 71, 196, .11);
}

.fp-form-field.has-error input,
.fp-form-field.has-error select,
.fp-form-field.has-error textarea,
.fp-consent.has-error {
  border-color: #db5965;
  box-shadow: 0 0 0 3px rgba(201, 54, 69, .08);
}

.fp-field-hint {
  color: #7a879e;
  font-size: 17px;
  line-height: 1.45;
}

.fp-field-error {
  min-height: 0;
  color: var(--fp-danger);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
}

.fp-field-error:empty {
  display: none;
}

.fp-segmented-fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

.fp-segmented-fieldset legend {
  margin-bottom: 8px;
}

.fp-segmented {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 8px;
  padding: 5px;
  border: 1px solid var(--fp-border);
  border-radius: 14px;
  background: #f5f8fd;
}

.fp-segmented label {
  margin: 0;
  cursor: pointer;
}

.fp-segmented input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.fp-segmented span {
  display: inline-flex;
  width: 100%;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 13px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #58709a;
  font-size: 12px;
  font-weight: 700;
  transition: all .15s ease;
}

.fp-segmented input:checked + span {
  border-color: #bcd0fa;
  background: #fff;
  color: var(--fp-blue);
  box-shadow: 0 5px 13px rgba(25, 71, 196, .1);
}

.fp-segmented input:focus-visible + span {
  outline: 3px solid rgba(25, 71, 196, .18);
}

.fp-money-input,
.fp-duration-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.fp-money-input input,
.fp-duration-input input {
  border-radius: 12px 0 0 12px !important;
}

.fp-money-input select,
.fp-duration-input select {
  width: auto;
  min-width: 102px;
  border-left: 0;
  border-radius: 0 12px 12px 0 !important;
  background-color: #f2f6fd;
  color: #294677;
  font-weight: 700;
}

.fp-duration-input select {
  min-width: 96px;
}

.fp-writing-prompts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.fp-writing-prompts > span {
  color: #8290a7;
  font-size: 17px;
}

.fp-writing-prompts button {
  border: 1px solid #d8e3f7;
  border-radius: 999px;
  background: #f7f9fd;
  color: #46628f;
  padding: 5px 9px;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.fp-writing-prompts button:hover,
.fp-writing-prompts button:focus-visible {
  border-color: #a9c0ec;
  background: var(--fp-blue-soft);
  color: var(--fp-blue);
}

.fp-profile-attachment {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 12px;
  border: 1px solid #dbe5f7;
  border-radius: 14px;
  background: #f8faff;
}

.fp-profile-attachment img {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border: 2px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(15, 45, 102, .12);
}

.fp-profile-attachment__copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}

.fp-profile-attachment__copy strong {
  color: #1c3156;
  font-size: 12px;
}

.fp-profile-attachment__copy a {
  overflow: hidden;
  color: #6f809e;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-switch {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
  margin: 0;
  cursor: pointer;
}

.fp-switch input {
  position: absolute;
  opacity: 0;
}

.fp-switch > span {
  position: relative;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background-color .15s ease;
}

.fp-switch > span::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .15);
  content: "";
  transition: transform .15s ease;
}

.fp-switch input:checked + span {
  background: var(--fp-blue);
}

.fp-switch input:checked + span::after {
  transform: translateX(16px);
}

.fp-switch em {
  color: #536887;
  font-size: 17px;
  font-style: normal;
  font-weight: 700;
}

.fp-icon-input {
  position: relative;
}

.fp-icon-input i {
  position: absolute;
  top: 50%;
  left: 13px;
  z-index: 1;
  color: #7890ba;
  transform: translateY(-50%);
}

.fp-icon-input input {
  padding-left: 36px !important;
}

.fp-file-drop {
  display: flex;
  min-height: 92px;
  align-items: center;
  gap: 13px;
  padding: 15px;
  border: 1.5px dashed #9fb4dd;
  border-radius: 14px;
  background: linear-gradient(145deg, #fbfcff, #f0f5ff);
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.fp-file-drop:hover,
.fp-file-drop.is-dragging {
  border-color: var(--fp-blue);
  background: #edf3ff;
  transform: translateY(-1px);
}

.fp-file-drop input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.fp-file-drop__icon {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  background: #e4edff;
  color: var(--fp-blue);
  font-size: 16px;
}

.fp-file-drop__copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 5px;
}

.fp-file-drop__copy strong {
  color: #27416d;
  font-size: 12px;
}

.fp-file-drop__copy small {
  color: #7a8aa5;
  font-size: 14px;
}

.fp-file-drop__action {
  flex: 0 0 auto;
  border: 1px solid #bfd0ee;
  border-radius: 10px;
  background: #fff;
  color: var(--fp-blue);
  padding: 7px 10px;
  font-size: 17px;
  font-weight: 700;
}

.fp-file-preview {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid #cde0f8;
  border-radius: 12px;
  background: #f5f9ff;
}

.fp-file-preview[hidden] {
  display: none !important;
}

.fp-file-preview__icon {
  color: var(--fp-blue);
}

.fp-file-preview__copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}

.fp-file-preview__copy strong {
  overflow: hidden;
  color: #263e68;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-file-preview__copy small {
  color: #7a8aa5;
  font-size: 9.5px;
}

.fp-file-preview button {
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: #fff;
  color: #7b879d;
  cursor: pointer;
}

.fp-check-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 16px 0 0;
  padding: 12px;
  border: 1px solid #dce6f7;
  border-radius: 13px;
  background: #fbfcff;
  cursor: pointer;
}

.fp-check-card > input {
  margin-top: 4px;
  accent-color: var(--fp-blue);
}

.fp-check-card__icon {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: #eaf1ff;
  color: var(--fp-blue);
}

.fp-check-card > span:last-child {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.fp-check-card strong {
  color: #2c4268;
  font-size: 11.5px;
}

.fp-check-card small {
  color: #7d8aa1;
  font-size: 14px;
  line-height: 1.45;
}

.fp-check-card.is-disabled {
  cursor: not-allowed;
  opacity: .65;
}

.fp-proposal-section--confirm {
  padding-bottom: 18px;
}

.fp-proposal-section--confirm .fp-proposal-section__heading {
  margin-bottom: 12px;
}

.fp-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 12px;
  border: 1px solid #dce6f6;
  border-radius: 12px;
  background: #f9fbff;
  color: #526786;
  font-size: 10.8px;
  line-height: 1.55;
  cursor: pointer;
}

.fp-consent input {
  flex: 0 0 auto;
  margin-top: 3px;
  accent-color: var(--fp-blue);
}

.fp-consent a {
  color: var(--fp-blue);
  font-weight: 700;
}

.fp-proposal-summary {
  position: sticky;
  top: 18px;
  display: grid;
  gap: 16px;
}

.fp-proposal-summary__card,
.fp-proposal-live-summary,
.fp-draft-status {
  border: 1px solid var(--fp-border);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(30, 62, 124, .05);
}

.fp-proposal-summary__card {
  padding: 19px;
}

.fp-proposal-summary__label {
  color: var(--fp-blue);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.fp-proposal-summary__card h3 {
  margin: 7px 0 15px;
  color: #182e56;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.45;
}

.fp-proposal-summary__card dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.fp-proposal-summary__card dl > div {
  display: grid;
  gap: 5px;
  padding: 11px 0;
  border-top: 1px solid #edf1f8;
}

.fp-proposal-summary__card dt {
  color: #7a879d;
  font-size: 14px;
  font-weight: 600;
}

.fp-proposal-summary__card dt i {
  width: 16px;
  color: #6b84b6;
}

.fp-proposal-summary__card dd {
  margin: 0;
  color: #2c4268;
  font-size: 11.5px;
  font-weight: 750;
}

.fp-proposal-live-summary {
  padding: 17px;
}

.fp-proposal-live-summary h4 {
  margin: 0 0 9px;
  color: #243c65;
  font-size: 12px;
  font-weight: 800;
}

.fp-proposal-live-summary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #edf1f8;
}

.fp-proposal-live-summary > div span {
  color: #8290a7;
  font-size: 14px;
}

.fp-proposal-live-summary > div strong {
  color: #264475;
  font-size: 17px;
  text-align: right;
}

.fp-proposal-live-summary p {
  display: flex;
  gap: 10px;
  margin: 11px 0 0;
  color: #6f7f98;
  font-size: 9.5px;
  line-height: 1.5;
}

.fp-proposal-live-summary p i {
  margin-top: 2px;
  color: var(--fp-success);
}

.fp-draft-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 13px;
  color: #7b889e;
  font-size: 9.5px;
  line-height: 1.45;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.fp-draft-status i {
  color: #7590c2;
}

.fp-draft-status.is-saved {
  border-color: #b8e0c5;
  background: #f2fbf5;
  color: #23713d;
}

.fp-proposal-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 26px;
  border-top: 1px solid var(--fp-border);
  background: rgba(255, 255, 255, .98);
}

.fp-proposal-footer__note {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #72819a;
  font-size: 17px;
}

.fp-proposal-footer__note i {
  color: #4f73be;
}

.fp-proposal-footer__actions,
.fp-proposal-success__actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fp-button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  padding: 10px 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease, background-color .15s ease;
}

.fp-button--primary {
  background: linear-gradient(135deg, #1947c4, #0c56f4);
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(25, 71, 196, .22);
}

.fp-button--secondary {
  border: 1px solid #d5e0f2;
  background: #f5f7fb;
  color: #425775 !important;
}

.fp-button:hover,
.fp-button:focus-visible {
  transform: translateY(-1px);
}

.fp-button--primary:hover,
.fp-button--primary:focus-visible {
  box-shadow: 0 13px 27px rgba(25, 71, 196, .28);
}

.fp-button:disabled {
  cursor: wait;
  opacity: .72;
  transform: none;
}

.fp-button__spinner {
  display: none;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, .42);
  border-top-color: #fff;
  border-radius: 50%;
  animation: fp-proposal-spin .72s linear infinite;
}

.fp-button.is-loading .fp-button__spinner {
  display: inline-block;
}

.fp-button.is-loading > i {
  display: none;
}

.fp-proposal-global-error {
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid #f0b7bd;
  border-radius: 12px;
  background: #fff5f6;
  color: #a62c39;
  font-size: 11px;
  font-weight: 650;
}

.fp-proposal-success {
  padding: 70px 24px;
  text-align: center;
}

.fp-proposal-success[hidden] {
  display: none !important;
}

.fp-proposal-success__icon {
  display: grid;
  width: 68px;
  height: 68px;
  margin: 0 auto 18px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #20a05a, #15803d);
  color: #fff;
  font-size: 25px;
  box-shadow: 0 15px 32px rgba(21, 128, 61, .22);
}

.fp-proposal-success h3 {
  margin: 0;
  color: #173057;
  font-size: 24px;
  font-weight: 800;
}

.fp-proposal-success p {
  max-width: 560px;
  margin: 11px auto 22px;
  color: #6e7c93;
  font-size: 12px;
  line-height: 1.65;
}

.fp-proposal-success__actions {
  justify-content: center;
}

@keyframes fp-proposal-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 991px) {
  .fp-proposal-layout {
    grid-template-columns: 1fr;
  }

  .fp-proposal-summary {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fp-draft-status {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .fp-proposal-modal .modal-dialog {
    width: calc(100vw - 18px);
    margin: 9px auto;
  }

  .fp-proposal-modal__content {
    border-radius: 18px;
  }

  .fp-proposal-modal__header {
    padding: 18px 17px 15px;
  }

  .fp-proposal-modal__header p {
    display: none;
  }

  .fp-proposal-modal__body {
    max-height: calc(100vh - 164px);
  }

  .fp-proposal-layout {
    gap: 16px;
    padding: 15px;
  }

  .fp-proposal-section {
    padding: 16px;
    border-radius: 15px;
  }

  .fp-proposal-grid,
  .fp-proposal-summary {
    grid-template-columns: 1fr;
  }

  .fp-form-field--full,
  .fp-draft-status {
    grid-column: auto;
  }

  .fp-profile-attachment {
    flex-wrap: wrap;
  }

  .fp-profile-attachment__copy {
    min-width: calc(100% - 72px);
  }

  .fp-switch {
    margin-left: 60px;
  }

  .fp-proposal-modal__footer {
    align-items: stretch;
    padding: 12px 15px;
  }

  .fp-proposal-footer__note {
    display: none;
  }

  .fp-proposal-footer__actions {
    width: 100%;
  }

  .fp-proposal-footer__actions .fp-button {
    flex: 1;
  }
}

@media (max-width: 480px) {
  .fp-segmented {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr;
  }

  .fp-money-input,
  .fp-duration-input {
    grid-template-columns: minmax(0, 1fr) 92px;
  }

  .fp-file-drop {
    flex-wrap: wrap;
  }

  .fp-file-drop__action {
    width: 100%;
    text-align: center;
  }

  .fp-proposal-modal__header h2 {
    font-size: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fp-proposal-modal *,
  .fp-proposal-modal *::before,
  .fp-proposal-modal *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Owner-only proposal management modal */
#applicationsModal .modal-content {
  overflow: hidden;
  border: 1px solid #d9e4f6;
  border-radius: 20px;
  box-shadow: 0 28px 80px rgba(8, 34, 88, .22);
}

#applicationsModal .modal-header {
  padding: 20px 22px;
  border-bottom: 1px solid #e4ebf7;
  background: #fff;
}

#applicationsModal .modal-title {
  color: #18325e;
  font-size: 18px;
  font-weight: 800;
}

#applicationsModal .modal-body {
  max-height: min(76vh, 760px);
  padding: 18px;
  background: #f7f9fd;
}

.fp-owner-proposal-empty {
  display: grid;
  min-height: 260px;
  place-items: center;
  align-content: center;
  gap: 8px;
  color: #7c8aa1;
  text-align: center;
}

.fp-owner-proposal-empty i {
  margin-bottom: 5px;
  color: #9eb1d3;
  font-size: 34px;
}

.fp-owner-proposal-empty strong {
  color: #334b74;
  font-size: 15px;
}

.fp-owner-proposal-empty span {
  font-size: 14px;
}

.fp-owner-proposal-empty strong {
  font-size: 18px;
}


.fp-owner-proposal-card {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid #dce5f3;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(27, 57, 116, .055);
}

.fp-owner-proposal-card:last-child {
  margin-bottom: 0;
}

.fp-owner-proposal-card__header,
.fp-owner-proposal-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.fp-owner-proposal-card__person {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
  color: inherit;
  text-decoration: none;
}

.fp-owner-proposal-card__person img {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border: 2px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 4px 13px rgba(18, 48, 105, .14);
}

.fp-owner-proposal-card__person > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.fp-owner-proposal-card__person strong {
  color: #19345e;
  font-size: 18px;
}

.fp-owner-proposal-card__person small {
  color: #8794aa;
  font-size: 14px;
}

.fp-owner-status {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 750;
}

.fp-owner-status--pending { background: #fff6d9; color: #946200; }
.fp-owner-status--accepted { background: #e4f4ff; color: #12658f; }
.fp-owner-status--rejected { background: #fff0f2; color: #a82d3b; }
.fp-owner-status--in_progress { background: #eaf0ff; color: #1947c4; }
.fp-owner-status--completed { background: #e8f8ed; color: #19733a; }

.fp-owner-proposal-card__metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.fp-owner-proposal-card__metrics > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
  border: 1px solid #e5ebf5;
  border-radius: 14px;
  background: #fafcff;
}

.fp-owner-proposal-card__metrics span {
  color: #8996aa;
  font-size: 13px;
}

.fp-owner-proposal-card__metrics strong {
  overflow: hidden;
  color: #2c456d;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-owner-proposal-card__section {
  padding: 16px;
  border-radius: 16px;
  background: #f8faff;
}

.fp-owner-proposal-card__section h4 {
  margin: 0 0 6px;
  color: #40577f;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.fp-owner-proposal-card__section p {
  margin: 0;
  color: #4e607d;
  font-size: 15px;
  line-height: 1.72;
}

.fp-owner-proposal-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fp-owner-proposal-card__links a,
.fp-owner-proposal-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  padding: 10px 14px;
  border: 1px solid #d6e1f3;
  border-radius: 999px;
  background: #fff;
  color: #315389;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.fp-owner-proposal-chip {
  background: #f1f6ff;
}

.fp-owner-proposal-card__footer {
  padding-top: 16px;
  border-top: 1px solid #edf1f7;
  align-items: stretch;
}

.fp-owner-proposal-card__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  color: #71809a;
  font-size: 14px;
}

.fp-owner-proposal-card__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.fp-owner-action {
  min-height: 34px;
  border: 0;
  border-radius: 10px;
  padding: 8px 11px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #fff;
  font-size: 14px;
  font-weight: 750;
  cursor: pointer;
}

.fp-owner-action--accept,
.fp-owner-action--complete { background: #18864a; }
.fp-owner-action--reject { background: #c43d4d; }
.fp-owner-action--progress { background: #1947c4; }
.fp-owner-action--ghost { background: #eef3ff; color: #214aaf; border: 1px solid #cad8fb; }
.fp-owner-action--ghost:hover { background: #e4edff; color: #133784; }

@media (max-width: 767px) {
  .fp-owner-proposal-card__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fp-owner-proposal-card__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .fp-owner-proposal-card__contact {
    width: 100%;
  }

  .fp-owner-proposal-card__actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* Project-owner proposal manager */
.fp-owner-proposals-modal__dialog {
  width: min(1120px, calc(100vw - 32px));
  max-width: 1120px;
}

.fp-owner-proposals-modal__content {
  overflow: hidden;
  border: 1px solid #d9e4f7;
  border-radius: 22px;
  background: #f7f9fe;
  box-shadow: 0 28px 80px rgba(12, 35, 82, .22);
}

.fp-owner-proposals-modal__header {
  align-items: flex-start;
  padding: 22px 26px 18px;
  border-bottom: 1px solid #dfe7f5;
  background: #fff;
}

.fp-owner-proposals-modal__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 5px;
  color: #1947c4;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.fp-owner-proposals-modal__header .modal-title {
  margin: 0;
  color: #172746;
  font-size: clamp(20px, 2.2vw, 27px);
  font-weight: 800;
}

.fp-owner-proposals-modal__subtitle {
  margin: 6px 0 0;
  color: #70809e;
  font-size: 18px;
}

.fp-owner-proposals-modal__body {
  max-height: min(74vh, 780px);
  padding: 22px;
  background: #f7f9fe;
}

@media (max-width: 767px) {
  .fp-owner-proposals-modal__dialog {
    width: calc(100vw - 16px);
    margin: 8px auto;
  }

  .fp-owner-proposals-modal__header,
  .fp-owner-proposals-modal__body {
    padding: 16px;
  }
}


/* Administrator application test controls */
.fp-owner-application-actions {
  display: grid;
  gap: 12px;
  width: 100%;
}

.fp-owner-application-actions .btn {
  min-height: 44px;
  width: 100%;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 750;
  line-height: 1.2;
}

.fp-admin-test-apply {
  box-shadow: 0 10px 24px rgba(25, 71, 196, .16);
}

.fp-admin-test-notice {
  margin: 0 0 18px;
  padding: 13px 15px;
  border: 1px solid #bfd3ff;
  border-radius: 14px;
  background: #eef4ff;
  color: #23447f;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12px;
  line-height: 1.55;
}

.fp-admin-test-notice[hidden] { display: none !important; }
.fp-admin-test-notice > i { margin-top: 3px; color: #1947c4; }
.fp-admin-test-notice strong { color: #143c9d; }

.fp-owner-proposal-card__badges {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.fp-owner-test-badge {
  min-height: 28px;
  padding: 6px 9px;
  border: 1px solid #bfd3ff;
  border-radius: 999px;
  background: #eef4ff;
  color: #1947c4;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}


.fp-admin-test-count {
  margin-top: 5px;
  color: #1947c4;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 750;
}

.fp-owner-proposal-card__footer {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
}

.fp-owner-proposal-card__contact span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
}

.fp-owner-proposal-card__actions .fp-owner-action,
.fp-owner-proposal-card__actions a.fp-owner-action {
  text-decoration: none;
}

@media (max-width: 991px) {
  .fp-owner-proposal-card__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* FolioPool 2.5.1 — unified proposal typography + viewport sizing
   Keeps the theme on one readable scale instead of mixing 11px and 18px body text. */
.fp-proposal-modal,
.fp-owner-proposals-modal {
  --fp-proposal-title-size: var(--fp-type-title, 22px);
  --fp-proposal-heading-size: var(--fp-type-heading, 17px);
  --fp-proposal-body-size: var(--fp-type-body, 14px);
  --fp-proposal-label-size: var(--fp-type-label, 13px);
  --fp-proposal-caption-size: var(--fp-type-caption, 12px);
}

.fp-proposal-modal__dialog {
  height: min(920px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
}
.fp-proposal-modal__content {
  height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
}
.fp-proposal-modal__header,
.fp-proposal-modal__footer { flex: 0 0 auto; }
.fp-proposal-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.fp-proposal-modal__header h2 {
  font-size: var(--fp-proposal-title-size);
  line-height: var(--fp-line-heading, 1.3);
}
.fp-proposal-modal__header p {
  margin-top: 6px;
  font-size: var(--fp-proposal-body-size);
  line-height: var(--fp-line-body, 1.55);
}
.fp-proposal-modal__eyebrow { font-size: var(--fp-proposal-micro-size, 11px); }
.fp-proposal-section__heading h3 {
  font-size: var(--fp-proposal-heading-size);
  line-height: var(--fp-line-heading, 1.3);
}
.fp-proposal-section__heading p,
.fp-proposal-summary__card p { font-size: var(--fp-proposal-caption-size); }
.fp-form-field > label,
.fp-segmented-fieldset legend,
.fp-label-row label {
  font-size: var(--fp-proposal-label-size);
  line-height: 1.35;
}
.fp-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fp-form-field select,
.fp-form-field textarea {
  min-height: var(--fp-control-height, 44px);
  font-size: var(--fp-proposal-body-size);
  line-height: 1.45;
}
.fp-form-field textarea { min-height: 110px; }
.fp-field-hint {
  font-size: var(--fp-proposal-label-size);
  line-height: 1.45;
}
.fp-writing-prompts > span,
.fp-writing-prompts button,
.fp-profile-attachment__copy a,
.fp-switch em,
.fp-file-drop__action,
.fp-proposal-footer__note {
  font-size: var(--fp-proposal-label-size);
}
.fp-profile-attachment__copy strong,
.fp-file-drop__copy strong,
.fp-segmented span,
.fp-button { font-size: var(--fp-proposal-label-size); }
.fp-file-drop__copy small,
.fp-check-card small,
.fp-proposal-live-summary > div span,
.fp-proposal-summary__card dt { font-size: var(--fp-proposal-caption-size); }
.fp-proposal-live-summary > div strong,
.fp-proposal-summary__card dd { font-size: var(--fp-proposal-body-size); }
.fp-proposal-summary__label { font-size: var(--fp-proposal-micro-size, 11px); }
.fp-proposal-summary__card h3 { font-size: var(--fp-proposal-subheading-size, 15px); }
.fp-character-counter,
.fp-field-error,
.fp-draft-status,
.fp-proposal-live-summary p { font-size: var(--fp-proposal-micro-size, 11px); }
.fp-proposal-success h3 { font-size: var(--fp-proposal-title-size); }
.fp-proposal-success p { font-size: var(--fp-proposal-body-size); }

/* Owner proposal cards follow the same hierarchy. */
.fp-owner-proposals-modal__header .modal-title,
#applicationsModal .modal-title { font-size: var(--fp-type-title, 22px); }
.fp-owner-proposals-modal__subtitle { font-size: var(--fp-type-body, 14px); }
.fp-owner-proposal-card__person img {
  width: 52px;
  height: 52px;
  flex-basis: 52px;
}
.fp-owner-proposal-card__person strong { font-size: var(--fp-type-heading, 17px); }
.fp-owner-proposal-card__person small,
.fp-owner-status,
.fp-owner-test-badge,
.fp-owner-proposal-card__metrics span,
.fp-owner-proposal-card__section p,
.fp-owner-proposal-card__links a,
.fp-owner-proposal-chip,
.fp-owner-proposal-card__contact,
.fp-owner-action { font-size: var(--fp-type-label, 13px); }
.fp-owner-proposal-card__metrics strong { font-size: var(--fp-type-subheading, 15px); }
.fp-owner-proposal-card__section h4 { font-size: var(--fp-type-caption, 12px); }
.fp-owner-action {
  min-height: 38px;
  padding: 8px 12px;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none !important;
}
.fp-owner-proposal-card__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px solid #edf1f7;
  background: transparent !important;
  color: inherit !important;
}
.fp-owner-proposal-card__contact span {
  min-height: 38px;
  color: #71809a;
}
.fp-owner-proposal-card__actions {
  align-items: center;
  gap: 8px;
}

@media (max-width: 767px) {
  .fp-proposal-modal__dialog {
    height: calc(100dvh - 18px);
    max-height: calc(100dvh - 18px);
  }
  .fp-proposal-modal__body { max-height: none; }
  .fp-owner-proposal-card__footer { grid-template-columns: 1fr; }
  .fp-owner-proposal-card__actions { justify-content: flex-start; }
}
