/**
 * Payer Coverage Database Tool — base presentation
 *
 * This file owns layout, spacing, typography, responsive behavior, and states.
 * Client-specific colors belong in payer-coverage-client-customizations.css.
 */

.pcdt {
     box-sizing: border-box;
     width: auto;
     color: var(--pcdt-ink);
     font-family: Arial, Helvetica, sans-serif;
     line-height: 1.35;
     margin: 50px auto;
     max-width: 1440px;
     padding: 0 25px;
}

.pcdt *,
.pcdt *::before,
.pcdt *::after {
     box-sizing: inherit;
}

.pcdt__inner {
     padding: clamp(24px, 4vw, 40px);
     border: 4px solid var(--pcdt-primary);
     background: var(--pcdt-background);
}

.pcdt__title {
     margin: 0 0 30px;
     color: var(--pcdt-ink);
     font-size: clamp(25px, 1.5vw, 36px);
     font-weight: 700;
     line-height: 1.1;
}

.pcdt__form {
     display: grid;
     grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.15fr) minmax(160px, 0.58fr);
     gap: 28px;
     align-items: end;
}

.pcdt__field label,
.pcdt__plan-search > label,
.pcdt__filter-by > label {
     display: block;
     margin: 0 0 14px 4px;
     color: var(--pcdt-primary);
     font-size: clamp(18px, 1.65vw, 20px);
     font-weight: 600;
}

.pcdt__field label span {
     color: var(--pcdt-primary);
}

.pcdt__control,
.pcdt__search-control {
     position: relative;
     min-height: 60px;
     border: 1.5px solid var(--pcdt-primary);
     border-radius: 12px;
     background: var(--pcdt-surface);
}

.pcdt__control input,
.pcdt__control select,
.pcdt__search-control input {
     width: 100%;
     min-height: 60px;
     margin: 0;
     padding: 12px 50px 12px 15px;
     border: 0;
     outline: 0;
     background: transparent;
     box-shadow: none;
     color: var(--pcdt-field-text);
     font: inherit;
     font-size: clamp(17px, 1.55vw, 24px);
}

.pcdt__control input::placeholder,
.pcdt__search-control input::placeholder {
     color: var(--pcdt-placeholder);
     opacity: 1;
}

.pcdt__control:focus-within,
.pcdt__search-control:focus-within {
     outline: 3px solid var(--pcdt-focus-soft);
     outline-offset: 2px;
}

.pcdt__select-wrap::after {
     position: absolute;
     top: 50%;
     right: 29px;
     width: 17px;
     height: 17px;
     border-right: 3px solid var(--pcdt-primary);
     border-bottom: 3px solid var(--pcdt-primary);
     content: "";
     pointer-events: none;
     transform: translateY(-70%) rotate(45deg);
}

.pcdt select {
     appearance: none;
     cursor: pointer;
}

.pcdt__clear {
     position: absolute;
     top: 50%;
     right: 10px;
     width: 44px;
     height: 44px;
     padding: 0;
     border: 0;
     background: transparent;
     color: var(--pcdt-primary);
     font-size: 42px;
     line-height: 1;
     cursor: pointer;
     transform: translateY(-50%);
}

.pcdt__submit {
     display: flex;
     align-items: center;
     justify-content: center;
     min-height: 52px;
     margin-bottom: 1px;
     padding: 11px 25px;
     gap: 34%;
     border: 0;
     border-radius: 999px;
     background: var(--pcdt-accent);
     color: var(--pcdt-accent-contrast);
     font: inherit;
     font-size: 19px;
     font-weight: 700;
     cursor: pointer;
     position: relative;
     top: -5px;
}

.pcdt__submit span:last-child {
     font-size: 31px;
     font-weight: 400;
     line-height: 0.6;
     position: relative;
     top: -3px;
     left: 40px;
}

.pcdt__submit:hover {
     filter: brightness(0.97);
}

.pcdt__submit:focus-visible,
.pcdt__tab:focus-visible,
.pcdt__clear:focus-visible,
.pcdt__criteria-trigger:focus-visible,
.pcdt__modal-close:focus-visible,
.pcdt a:focus-visible {
     outline: 3px solid var(--pcdt-focus);
     outline-offset: 3px;
}

.pcdt__submit:disabled {
     cursor: wait;
     opacity: 0.62;
}

.pcdt__message {
     margin: 18px 0 0;
     padding: 12px 14px;
     border-left: 4px solid var(--pcdt-primary);
     background: var(--pcdt-surface);
     color: var(--pcdt-ink);
}

.pcdt__message.is-error {
     border-color: var(--pcdt-error);
     color: var(--pcdt-error-text);
}

.pcdt__summary {
     display: flex;
     align-items: center;
     margin: 40px 0;
     gap: 28px;
     color: var(--pcdt-primary);
}

.pcdt__people {
     flex: 0 0 clamp(140px, 14vw, 205px);
     width: clamp(140px, 14vw, 205px);
}

.pcdt__summary p,
.pcdt__summary p strong {
     margin: 0;
     color: var(--pcdt-primary);
     font-size: clamp(23px, 2.1vw, 34px);
     font-weight: 700;
}

.pcdt__toolbar {
     display: grid;
     grid-template-columns: minmax(220px, 0.8fr) minmax(600px, 3.2fr);
     align-items: end;
     gap: 14px;
}

/* Mobile-only "Filter By" dropdown; the tab bar takes over on wider screens. */
.pcdt__filter-by {
     display: none;
}

.pcdt__plan-search > label {
     margin-bottom: 7px;
}

.pcdt__search-control {
     display: flex;
     align-items: center;
     border-radius: 11px;
}

.pcdt__search-control > span {
     position: absolute;
     top: 50%;
     left: 17px;
     color: var(--pcdt-primary);
     font-size: 38px;
     transform: translateY(-56%) rotate(-20deg);
}

.pcdt__search-control input {
     padding-right: 16px;
     padding-left: 52px;
}

.pcdt__tabs {
     display: flex;
     min-width: 0;
     overflow: hidden;
     border: 1.5px solid var(--pcdt-primary);
     border-radius: 11px;
     background: var(--pcdt-surface);
}

.pcdt__tab {
     flex: 1 1 0;
     min-width: 0;
     min-height: 59px;
     padding: 10px 14px;
     border: 0;
     border-right: 1px solid var(--pcdt-primary);
     background: var(--pcdt-surface);
     color: var(--pcdt-ink);
     font: inherit;
     font-size: clamp(14px, 0.5vw, 20px);
     font-weight: 700;
     text-transform: uppercase;
     text-align: center;
     cursor: pointer;
}

.pcdt__tab:last-child {
     border-right: 0;
}

.pcdt__tab.is-active {
     border-radius: 10px;
     background: var(--pcdt-primary);
     color: var(--pcdt-primary-contrast);
}

.pcdt__table-wrap {
     margin-top: 20px;
     overflow-x: auto;
}

.pcdt__table {
     width: 100%;
     min-width: 930px;
     border: 0;
     border-collapse: collapse;
     table-layout: fixed;
     background: transparent;
}

.pcdt__table th {
     padding: 16px 13px;
     border-right: 1px solid var(--pcdt-table-header-divider);
     background: var(--pcdt-table-header);
     color: var(--pcdt-table-header-contrast);
     font-size: clamp(17px, 1vw, 24px);
     font-weight: 700;
     text-align: center;
}

.pcdt__table th:first-child {
     border-radius: 12px 0 0 12px;
}

.pcdt__table th:last-child {
     border-right: 0;
     border-radius: 0 12px 12px 0;
}

.pcdt__table td {
     padding: 15px;
     border-bottom: 1px solid var(--pcdt-divider);
     color: var(--pcdt-ink);
     font-size: clamp(15px, 1.25vw, 20px);
     text-align: left;
     vertical-align: middle;
}

.pcdt__table td:not(:first-child) {
     text-align: center;
}

.pcdt__table a,
.pcdt__card a,
.pcdt__criteria-trigger,
.pcdt__modal-source a {
     color: var(--pcdt-link);
     text-decoration: underline;
     text-underline-offset: 2px;
}

.pcdt__criteria-trigger {
     margin: 0;
     padding: 0;
     border: 0;
     appearance: none;
     background: transparent;
     font: inherit;
     cursor: pointer;
}

.pcdt__cards {
     display: none;
}

.pcdt__empty {
     padding: 25px;
     color: var(--pcdt-ink);
     text-align: center;
}

.pcdt__disclaimer {
     margin: 30px 0 0;
     color: var(--pcdt-muted);
     font-size: 12px;
}

.pcdt.is-loading {
     cursor: progress;
}

/* Coverage criteria modal */
body.pcdt-modal-open {
     overflow: hidden;
}

.pcdt__modal[hidden] {
     display: none;
}

.pcdt__modal {
     position: fixed;
     inset: 0;
     z-index: 999999;
     display: grid;
     place-items: center;
     padding: 24px;
}

.pcdt__modal-backdrop {
     position: absolute;
     inset: 0;
     background: var(--pcdt-modal-overlay);
}

.pcdt__dialog {
     position: relative;
     z-index: 1;
     width: min(760px, 100%);
     max-height: calc(100vh - 48px);
     overflow-y: auto;
     padding: clamp(24px, 4vw, 42px);
     border: 1px solid var(--pcdt-modal-border);
     border-radius: 18px;
     background: var(--pcdt-surface);
     color: var(--pcdt-ink);
     box-shadow: var(--pcdt-modal-shadow);
}

.pcdt__modal-close {
     position: absolute;
     top: 5px;
     right: 5px;
     width: 44px;
     height: 44px;
     padding: 0;
     border: 0;
     border-radius: 50%;
     background: transparent;
     color: var(--pcdt-primary);
     font: inherit;
     font-size: 38px;
     line-height: 1;
     cursor: pointer;
}

.pcdt__modal-close:hover {
     background: var(--pcdt-modal-close-hover);
}

.pcdt__modal-header {
     margin-bottom: 28px;
}

.pcdt__modal-title {
     margin: 0 46px 12px 0;
     padding-bottom: 10px;
     border-bottom: 4px solid var(--pcdt-primary);
     color: var(--pcdt-ink);
     font-size: clamp(22px, 2vw, 30px);
     font-weight: 700;
     line-height: 1.2;
}

.pcdt__modal-plan {
     margin: 0;
     color: var(--pcdt-ink);
     font-size: clamp(19px, 1.6vw, 24px);
     font-weight: 700;
     line-height: 1.3;
}

.pcdt__modal-content {
     display: grid;
     gap: 20px;
}

.pcdt__criteria-section {
     overflow: hidden;
     border: 1px solid var(--pcdt-modal-border);
     border-radius: 12px;
     background: var(--pcdt-surface);
}

.pcdt__criteria-section h3 {
     margin: 0;
     padding: 14px 18px;
     background: var(--pcdt-primary);
     color: var(--pcdt-primary-contrast);
     font-size: clamp(18px, 1.4vw, 22px);
     font-weight: 700;
     line-height: 1.2;
}

.pcdt__criteria-table-wrap {
     overflow-x: auto;
}

.pcdt__criteria-table {
     width: 100%;
     border: 0;
     border-collapse: collapse;
     table-layout: fixed;
}

.pcdt__criteria-table th,
.pcdt__criteria-table td {
     padding: 15px 18px;
     border: 0;
     text-align: left;
     vertical-align: top;
}

.pcdt__criteria-table th {
     background: var(--pcdt-modal-table-header);
     color: var(--pcdt-ink);
     font-size: 15px;
     font-weight: 700;
}

.pcdt__criteria-table td {
     border-top: 1px solid var(--pcdt-modal-border);
     color: var(--pcdt-ink);
     font-size: 17px;
}

.pcdt__modal-source {
     margin: 24px 0 0;
     text-align: right;
}

@media (max-width: 1000px) {
     .pcdt__form {
          grid-template-columns: 1fr 1fr;
     }

     .pcdt__submit {
          grid-column: 1 / -1;
          justify-self: end;
          width: min(320px, 100%);
     }

     .pcdt__toolbar {
          grid-template-columns: 1fr;
     }
}

@media (max-width: 720px) {
     .pcdt__inner {
          padding: 24px 18px 30px;
          border-width: 3px;
     }

     .pcdt__form {
          grid-template-columns: 1fr;
          gap: 18px;
     }

     .pcdt__submit {
          grid-column: auto;
          justify-self: stretch;
          width: 100%;
     }

     .pcdt__summary {
          align-items: center;
          gap: 5px;
          flex-direction: column;
          margin: 0px 0 25px;
     }

     .pcdt__people {
          flex-basis: 92px;
     }

     .pcdt__summary p {
          text-align: center;
     }

     .pcdt__toolbar {
          gap: 18px;
     }

     /* On mobile the tab bar is replaced by the "Filter By" dropdown. */
     .pcdt__tabs {
          display: none;
          overflow-x: auto;
     }

     .pcdt__filter-by {
          display: block;
     }

     .pcdt__tab {
          flex: 1 0 auto;
     }

     .pcdt__table {
          display: none;
     }

     .pcdt__cards {
          display: grid;
          gap: 14px;
     }

     .pcdt__card {
          padding: 18px;
          border: 1px solid var(--pcdt-card-border);
          border-radius: 12px;
          background: var(--pcdt-surface);
          color: var(--pcdt-ink);
     }

     .pcdt__card h3 {
          margin: 0 0 14px;
          font-size: 20px;
     }

     .pcdt__card dl {
          margin: 0;
     }

     .pcdt__card dl > div {
          display: grid;
          grid-template-columns: minmax(125px, 0.85fr) 1fr;
          gap: 12px;
          padding: 8px 0;
          border-top: 1px solid var(--pcdt-card-divider);
     }

     .pcdt__card dt {
          font-weight: 700;
     }

     .pcdt__card dd {
          margin: 0;
     }

     .pcdt__modal {
          align-items: end;
          padding: 12px;
     }

     .pcdt__dialog {
          width: 100%;
          max-height: calc(100vh - 24px);
          padding: 24px 18px;
          border-radius: 16px 16px 8px 8px;
     }

     .pcdt__modal-title {
          margin-right: 42px;
     }

     .pcdt__criteria-table th,
     .pcdt__criteria-table td {
          padding: 13px 14px;
     }
}

.pcdt .screen-reader-text {
     position: absolute !important;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     border: 0;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap;
}
