.proposal-form-page {
    --pf-accent-rgb: 36, 119, 185;
    --pf-ink: #102033;
    --pf-muted: #5b6675;
    --pf-surface: #fff;
    --pf-canvas: #f7fafc;
    --pf-line: #e3eaf1;
    --pf-line-strong: #d5e0e9;
    --pf-soft: #f8fbfd;
    --pf-action: rgb(var(--pf-accent-rgb));
    --pf-action-strong: #1b5f96;
    --pf-action-soft: #eaf3fc;
    --pf-success: #4e9e2e;
    --pf-success-strong: #3f8425;
    --pf-success-soft: #eaf8e3;
    --primary-rgb: var(--pf-accent-rgb);

    min-height: calc(100vh - 10rem);
    color: var(--pf-ink);
    background: var(--pf-canvas);
    font-family: "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
}

.proposal-form-shell {
    width: 100%;
    max-width: 1540px;
    margin: 0 auto;
    padding: 1rem 1.25rem 3rem;
}

.proposal-form-header {
    display: flex;
    min-height: 5.6rem;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1rem 1.15rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.75rem;
    box-shadow: 0 0.38rem 1.4rem rgb(16 32 51 / 0.055);
}

.proposal-form-header__identity {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.75rem;
}

.proposal-form-header__actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.45rem;
}

.proposal-form-header__copy {
    min-width: 0;
}

.proposal-form-eyebrow {
    display: block;
    margin-bottom: 0.14rem;
    color: var(--pf-action-strong);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.075em;
    line-height: 1;
    text-transform: uppercase;
}

.proposal-form-header h1 {
    margin: 0;
    color: var(--pf-ink);
    font-size: 1.48rem;
    font-weight: 720;
    letter-spacing: -0.03em;
    line-height: 1.18;
}

.proposal-form-header p {
    margin: 0.2rem 0 0;
    color: var(--pf-muted);
    font-size: 0.81rem;
}

.proposal-form-back {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-ink);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.55rem;
    font-size: 1.05rem;
}

.proposal-form-back:hover,
.proposal-form-back:focus-visible {
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border-color: #c9dfef;
}

.proposal-form-cancel {
    min-height: 2.35rem;
    padding: 0 0.82rem;
    color: var(--pf-muted);
    background: transparent;
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.5rem;
    font-size: 0.77rem;
    font-weight: 600;
}

.proposal-form-cancel:hover {
    color: var(--pf-ink);
    background: var(--pf-soft);
}

.proposal-form-send {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    gap: 0.38rem;
    padding: 0 0.82rem;
    color: #fff;
    background: var(--pf-action);
    border: 1px solid var(--pf-action);
    border-radius: 0.5rem;
    box-shadow: 0 0.2rem 0.65rem rgb(var(--pf-accent-rgb) / 0.14);
    font-size: 0.77rem;
    font-weight: 650;
}

.proposal-form-send:hover:not(:disabled) {
    background: var(--pf-action-strong);
    border-color: var(--pf-action-strong);
}

.proposal-form-send:disabled {
    cursor: wait;
    opacity: 0.65;
}

.proposal-form-preview {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    gap: 0.38rem;
    padding: 0 0.82rem;
    color: var(--pf-ink);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.5rem;
    font-size: 0.77rem;
    font-weight: 650;
}

.proposal-form-preview:hover {
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border-color: #c9dfef;
}

.proposal-form-loading {
    display: flex;
    min-height: 18rem;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    color: var(--pf-muted);
    font-size: 0.78rem;
}

.proposal-form-load-error {
    display: grid;
    min-height: 18rem;
    place-items: center;
    align-content: center;
    gap: 0.45rem;
    color: var(--pf-muted);
    text-align: center;
}

.proposal-form-load-error > i {
    color: #a34c55;
    font-size: 1.6rem;
}

.proposal-form-load-error strong {
    color: var(--pf-ink);
    font-size: 0.82rem;
}

.proposal-form-load-error span {
    max-width: 28rem;
    font-size: 0.68rem;
}

.proposal-form-load-error button {
    min-height: 2.1rem;
    margin-top: 0.35rem;
    padding: 0 0.7rem;
    color: var(--pf-ink);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.4rem;
    font-size: 0.66rem;
    font-weight: 600;
}

.proposal-template-picker {
    display: grid;
    grid-template-columns: minmax(15rem, 0.85fr) minmax(17rem, 1.15fr);
    align-items: center;
    gap: 0.8rem 1rem;
    margin: 0.8rem 0 0.95rem;
    padding: 0.78rem;
    background: #f8fbfd;
    border: 1px solid var(--pf-line);
    border-radius: 0.62rem;
}

.proposal-template-picker__intro {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.62rem;
}

.proposal-template-picker__icon {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border: 1px solid #d3e6f5;
    border-radius: 0.5rem;
    font-size: 0.98rem;
}

.proposal-template-picker__title {
    display: flex;
    align-items: center;
    gap: 0.42rem;
}

.proposal-template-picker__title strong {
    color: var(--pf-ink);
    font-size: 0.74rem;
    font-weight: 680;
}

.proposal-template-picker__title span {
    padding: 0.12rem 0.3rem;
    color: #718094;
    background: #fff;
    border: 1px solid var(--pf-line);
    border-radius: 0.28rem;
    font-size: 0.56rem;
    font-weight: 650;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.proposal-template-picker__intro p {
    margin: 0.12rem 0 0;
    color: var(--pf-muted);
    font-size: 0.64rem;
    line-height: 1.35;
}

.proposal-template-picker__control {
    min-width: 0;
}

.proposal-template-picker__loading {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.32rem;
    color: var(--pf-muted);
    font-size: 0.61rem;
}

.proposal-template-picker__loading .spinner-border {
    width: 0.72rem;
    height: 0.72rem;
    border-width: 0.1rem;
}

.proposal-template-applied {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.65rem;
    color: #3f8425;
    border-top: 1px solid #e6edf2;
}

.proposal-template-applied > i {
    display: grid;
    width: 1.45rem;
    height: 1.45rem;
    flex: 0 0 auto;
    place-items: center;
    background: var(--pf-success-soft);
    border-radius: 0.36rem;
    font-size: 0.85rem;
}

.proposal-template-applied > span {
    display: grid;
    gap: 0.02rem;
}

.proposal-template-applied strong {
    color: var(--pf-ink);
    font-size: 0.68rem;
    font-weight: 650;
}

.proposal-template-applied small {
    color: var(--pf-muted);
    font-size: 0.59rem;
}

.proposal-template-picker__empty {
    display: inline-flex;
    grid-column: 1 / -1;
    width: fit-content;
    align-items: center;
    gap: 0.28rem;
    color: var(--pf-action-strong);
    font-size: 0.64rem;
    font-weight: 620;
    text-decoration: none;
}

.proposal-template-origin {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.8rem 0 0.95rem;
    padding: 0.62rem 0.7rem;
    color: var(--pf-muted);
    background: #f8fbfd;
    border: 1px solid var(--pf-line);
    border-radius: 0.55rem;
    font-size: 0.65rem;
}

.proposal-template-origin > i {
    color: var(--pf-action);
    font-size: 0.95rem;
}

.proposal-template-origin strong {
    margin-left: 0.16rem;
    color: var(--pf-ink);
}

.proposal-template-origin small {
    margin-left: 0.25rem;
    color: #788698;
}

.proposal-template-origin em {
    margin-left: auto;
    color: #788698;
    font-size: 0.59rem;
    font-style: normal;
}

.proposal-form {
    margin-top: 0.9rem;
}

.proposal-wizard {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem;
    margin-bottom: 0.9rem;
    padding: 0.32rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.75rem;
    box-shadow: 0 0.22rem 0.9rem rgb(16 32 51 / 0.035);
}

.proposal-wizard.has-five-steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.proposal-wizard__step {
    display: flex;
    min-width: 0;
    min-height: 3rem;
    align-items: center;
    gap: 0.55rem;
    padding: 0 0.7rem;
    color: var(--pf-muted);
    background: transparent;
    border: 0;
    border: 1px solid transparent;
    border-radius: 0.52rem;
    text-align: left;
}

.proposal-wizard__step > span {
    display: grid;
    width: 1.55rem;
    height: 1.55rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-muted);
    background: var(--pf-soft);
    border: 1px solid var(--pf-line);
    border-radius: 0.42rem;
    font-size: 0.68rem;
    font-weight: 650;
}

.proposal-wizard__step strong {
    overflow: hidden;
    color: inherit;
    font-size: 0.76rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.proposal-wizard__step:hover {
    color: var(--pf-ink);
    background: var(--pf-soft);
}

.proposal-wizard__step.is-active {
    color: var(--pf-action-strong);
    background: var(--pf-action-soft);
    border-color: #d5e7f4;
}

.proposal-wizard__step.is-active > span {
    color: #fff;
    background: var(--pf-action);
    border-color: var(--pf-action);
}

.proposal-wizard__step.is-visited:not(.is-active) > span {
    color: var(--pf-success-strong);
    background: var(--pf-success-soft);
    border-color: #cfe7c4;
}

.proposal-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 19.5rem;
    align-items: start;
    gap: 1rem;
}

.proposal-form-main {
    display: grid;
    min-width: 0;
    gap: 0.9rem;
}

.proposal-form-section,
.proposal-form-summary {
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.75rem;
    box-shadow: 0 0.3rem 1rem rgb(16 32 51 / 0.035);
}

.proposal-form-section {
    overflow: hidden;
}

.proposal-form-section__heading {
    display: flex;
    min-height: 4.45rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.82rem 1rem;
    background: var(--pf-surface);
    border-bottom: 1px solid var(--pf-line);
}

.proposal-form-section__heading--actions > div {
    flex: 1;
}

.proposal-form-section__icon {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border: 1px solid #d5e7f4;
    border-radius: 0.52rem;
    font-size: 1rem;
}

.proposal-form-section h2,
.proposal-form-section h3 {
    margin: 0;
    color: var(--pf-ink);
}

.proposal-form-section h2 {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.proposal-form-section h3 {
    font-size: 0.8rem;
    font-weight: 650;
}

.proposal-form-section__heading p {
    margin: 0.15rem 0 0;
    color: var(--pf-muted);
    font-size: 0.72rem;
}

.proposal-form-section__body {
    display: grid;
    gap: 1.1rem;
    padding: 1.1rem;
}

.proposal-form-section__body--items {
    padding: 0.8rem;
}

.proposal-type-choice {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.proposal-type-option {
    display: flex;
    min-width: 0;
    min-height: 4.2rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.72rem 0.82rem;
    color: var(--pf-muted);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.58rem;
    text-align: left;
}

.proposal-type-option > i {
    flex: 0 0 auto;
    font-size: 1.1rem;
}

.proposal-type-option span,
.proposal-type-option strong,
.proposal-type-option small {
    display: block;
    min-width: 0;
}

.proposal-type-option strong {
    color: var(--pf-ink);
    font-size: 0.82rem;
    font-weight: 600;
}

.proposal-type-option small {
    margin-top: 0.12rem;
    color: var(--pf-muted);
    font-size: 0.7rem;
}

.proposal-type-option:hover {
    background: var(--pf-soft);
    border-color: var(--pf-line-strong);
}

.proposal-type-option.is-active {
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border-color: #bad9ee;
    box-shadow: 0 0 0 1px rgb(var(--pf-accent-rgb) / 0.04);
}

.proposal-type-option.is-active strong,
.proposal-type-option.is-active small {
    color: var(--pf-ink);
}

.proposal-type-option.is-active small {
    color: var(--pf-muted);
    opacity: 1;
}

.proposal-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.proposal-field-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.proposal-field-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.proposal-field--wide {
    grid-column: 1 / -1;
}

.proposal-field {
    min-width: 0;
}

.proposal-field label {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0 0 0.32rem 0.05rem;
    color: #34475a;
    font-size: 0.71rem;
    font-weight: 650;
}

.proposal-field label span {
    color: var(--pf-muted);
    font-size: 0.65rem;
    font-weight: 400;
}

.proposal-field label em {
    color: #b24850;
    font-style: normal;
}

.proposal-form-page .form-control,
.proposal-form-page .form-select {
    min-height: 2.55rem;
    color: var(--pf-ink);
    background-color: var(--pf-surface);
    border-color: var(--pf-line-strong);
    border-radius: 0.5rem;
    font-family: inherit;
    font-size: 0.79rem;
}

.proposal-form-page .form-control:focus,
.proposal-form-page .form-select:focus {
    border-color: rgb(var(--pf-accent-rgb) / 0.6);
    box-shadow: 0 0 0 0.17rem rgb(var(--pf-accent-rgb) / 0.1);
}

.proposal-form-page .form-control:disabled,
.proposal-form-page .form-select:disabled {
    color: var(--pf-muted);
    background: var(--pf-soft);
}

.proposal-field .validation-message {
    display: block;
    margin: 0.25rem 0 0 0.05rem;
    color: #b24850;
    font-size: 0.69rem;
}

.proposal-add-item {
    display: inline-flex;
    min-height: 2.1rem;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.35rem;
    padding: 0 0.65rem;
    color: var(--pf-ink);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.42rem;
    font-size: 0.76rem;
    font-weight: 600;
}

.proposal-add-item:hover {
    background: var(--pf-soft);
}

.proposal-items {
    display: grid;
    gap: 0.55rem;
}

.proposal-item {
    padding: 0.72rem;
    background: #fbfcfd;
    border: 1px solid var(--pf-line);
    border-radius: 0.6rem;
}

.proposal-item__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.45rem;
}

.proposal-item__top > span {
    color: var(--pf-muted);
    font-size: 0.7rem;
    font-weight: 650;
}

.proposal-item__remove {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    padding: 0;
    color: #8a5559;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.36rem;
}

.proposal-item__remove:hover {
    color: #a53740;
    background: #fff4f4;
    border-color: #efd7d9;
}

.proposal-item__fields {
    display: grid;
    grid-template-columns: 7.5rem 9.5rem minmax(10rem, 1fr) 5.75rem 7rem 5.5rem 7.5rem;
    align-items: end;
    gap: 0.55rem;
}

.proposal-item__total {
    display: grid;
    min-height: 2.4rem;
    align-content: center;
    justify-items: end;
    padding: 0 0.25rem;
}

.proposal-item__total span {
    color: var(--pf-muted);
    font-size: 0.65rem;
}

.proposal-item__total strong {
    color: var(--pf-ink);
    font-size: 0.84rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

.proposal-item__total small {
    margin-top: 0.08rem;
    color: var(--pf-blue);
    font-size: 0.65rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

.proposal-field-placeholder {
    display: flex;
    min-height: 2.4rem;
    align-items: center;
    padding: 0 0.7rem;
    color: var(--pf-muted);
    background: var(--pf-soft);
    border: 1px solid var(--pf-line);
    border-radius: 0.42rem;
    font-size: 0.76rem;
}

.proposal-items-empty {
    display: grid;
    min-height: 10rem;
    place-items: center;
    align-content: center;
    gap: 0.3rem;
    color: var(--pf-muted);
    text-align: center;
}

.proposal-items-empty > i {
    margin-bottom: 0.2rem;
    color: var(--pf-action);
    font-size: 1.6rem;
}

.proposal-items-empty strong {
    color: var(--pf-ink);
    font-size: 0.84rem;
}

.proposal-items-empty span {
    font-size: 0.73rem;
}

.proposal-items-empty button {
    margin-top: 0.45rem;
    padding: 0.42rem 0.7rem;
    color: var(--pf-ink);
    background: var(--pf-surface);
    border: 1px solid var(--pf-line-strong);
    border-radius: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.proposal-check {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.7rem;
    background: #fbfcfd;
    border: 1px solid var(--pf-line);
    border-radius: 0.48rem;
    cursor: pointer;
}

.proposal-check--compact {
    width: fit-content;
}

.proposal-check .form-check-input {
    flex: 0 0 auto;
    margin: 0.15rem 0 0;
}

.proposal-check span,
.proposal-check strong,
.proposal-check small {
    display: block;
}

.proposal-check strong {
    color: var(--pf-ink);
    font-size: 0.76rem;
    font-weight: 600;
}

.proposal-check small {
    margin-top: 0.08rem;
    color: var(--pf-muted);
    font-size: 0.68rem;
}

.proposal-field-group {
    display: grid;
    gap: 0.65rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--pf-line);
}

.proposal-field-group:last-of-type {
    padding-bottom: 0;
    border-bottom: 0;
}

.proposal-notes {
    min-height: 6.5rem;
    resize: vertical;
}

.proposal-content-list {
    overflow: hidden;
    border: 1px solid var(--pf-line);
    border-radius: 0.5rem;
}

.proposal-content-list__heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0.75rem;
    background: var(--pf-soft);
    border-bottom: 1px solid var(--pf-line);
}

.proposal-content-list__heading strong {
    color: var(--pf-ink);
    font-size: 0.77rem;
}

.proposal-content-list__heading span {
    color: var(--pf-muted);
    font-size: 0.67rem;
}

.proposal-content-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid var(--pf-line);
}

.proposal-content-item:last-child {
    border-bottom: 0;
}

.proposal-content-item > span,
.proposal-content-item strong,
.proposal-content-item small {
    display: block;
}

.proposal-content-item strong {
    color: var(--pf-ink);
    font-size: 0.75rem;
    font-weight: 600;
}

.proposal-content-item small {
    margin-top: 0.1rem;
    color: var(--pf-muted);
    font-size: 0.67rem;
}

.proposal-content-item em {
    color: var(--pf-muted);
    font-size: 0.65rem;
    font-style: normal;
}

.proposal-blocks {
    display: grid;
    gap: 0;
}

.proposal-block {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    overflow: hidden;
    background: #fbfcfd;
    border: 1px solid var(--pf-line);
    border-radius: 0.6rem;
    transition: opacity 120ms ease, border-color 120ms ease;
}

.proposal-block.is-dragging {
    opacity: 0.45;
    border-color: rgba(var(--pf-accent-rgb), 0.55);
}

.proposal-block__order {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.65rem 0.4rem;
    background: var(--pf-soft);
    border-right: 1px solid var(--pf-line);
}

.proposal-block__order > span {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    color: var(--pf-ink);
    background: #fff;
    border: 1px solid var(--pf-line);
    border-radius: 0.32rem;
    font-size: 0.6rem;
    font-weight: 650;
}

.proposal-block__drag {
    display: grid;
    width: 1.8rem;
    height: 2rem;
    place-items: center;
    padding: 0;
    color: var(--pf-muted);
    background: transparent;
    border: 0;
    border-radius: 0.3rem;
    cursor: grab;
    font-size: 1rem;
    touch-action: none;
}

.proposal-block__drag:hover,
.proposal-block__drag:focus-visible {
    color: var(--pf-ink);
    background: #fff;
}

.proposal-block__drag:active {
    cursor: grabbing;
}

.proposal-block-dropzone {
    position: relative;
    height: 0.55rem;
}

.proposal-block-dropzone::after {
    position: absolute;
    top: 50%;
    right: 0.35rem;
    left: 0.35rem;
    height: 2px;
    background: var(--pf-action);
    border-radius: 999px;
    content: "";
    opacity: 0;
    transform: scaleX(0.96);
    transition: opacity 100ms ease, transform 100ms ease;
}

.proposal-block-dropzone.is-visible {
    height: 0.8rem;
}

.proposal-block-dropzone.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.proposal-block-dropzone--last {
    margin-bottom: -0.25rem;
}

.proposal-block__body {
    display: grid;
    min-width: 0;
    gap: 0.55rem;
    padding: 0.65rem;
}

.proposal-block__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: end;
    gap: 0.55rem;
}

.proposal-block__toggle {
    display: flex;
    min-height: 2.4rem;
    align-items: center;
    gap: 0.35rem;
    color: var(--pf-muted);
    font-size: 0.7rem;
}

.proposal-block__content {
    min-height: 7rem;
    resize: vertical;
}

.proposal-block__description {
    margin: 0;
    padding: 0.55rem 0.65rem;
    color: var(--pf-muted);
    background: var(--pf-soft);
    border-radius: 0.38rem;
    font-size: 0.7rem;
}

.proposal-review {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--pf-line);
    border-radius: 0.5rem;
}

.proposal-review > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem;
    border-right: 1px solid var(--pf-line);
    border-bottom: 1px solid var(--pf-line);
}

.proposal-review > div:nth-child(2n) {
    border-right: 0;
}

.proposal-review > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.proposal-review dt {
    color: var(--pf-muted);
    font-size: 0.7rem;
    font-weight: 400;
}

.proposal-review dd {
    margin: 0;
    color: var(--pf-ink);
    font-size: 0.77rem;
    font-weight: 650;
    text-align: right;
}

.proposal-wizard-actions {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.75rem;
    padding: 0.72rem 0.8rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-line);
    border-radius: 0.68rem;
}

.proposal-wizard-actions > span {
    color: var(--pf-muted);
    font-size: 0.68rem;
}

.proposal-wizard-actions button {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.76rem;
    font-weight: 600;
}

.proposal-wizard-actions__back {
    width: fit-content;
    color: var(--pf-ink);
    background: transparent;
    border: 1px solid var(--pf-line-strong);
}

.proposal-wizard-actions__next {
    width: fit-content;
    justify-self: end;
    color: #fff;
    background: var(--pf-action);
    border: 1px solid var(--pf-action);
    box-shadow: 0 0.2rem 0.65rem rgb(var(--pf-accent-rgb) / 0.14);
}

.proposal-wizard-actions button:disabled {
    opacity: 0.4;
}

.proposal-form-summary {
    position: sticky;
    top: 5rem;
    overflow: hidden;
}

.proposal-form-summary__heading {
    display: flex;
    min-height: 4.45rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.82rem 0.95rem;
    background: var(--pf-surface);
    border-bottom: 1px solid var(--pf-line);
}

.proposal-form-summary__heading span,
.proposal-form-summary__heading strong {
    display: block;
}

.proposal-form-summary__heading span {
    color: var(--pf-action-strong);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.proposal-form-summary__heading strong {
    margin-top: 0.12rem;
    color: var(--pf-ink);
    font-size: 0.86rem;
    font-weight: 700;
}

.proposal-form-summary__heading i {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    color: var(--pf-action);
    background: var(--pf-action-soft);
    border: 1px solid #d5e7f4;
    border-radius: 0.52rem;
    font-size: 1.05rem;
}

.proposal-form-summary__details {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0.7rem 0.95rem;
    border-bottom: 1px solid var(--pf-line);
}

.proposal-form-summary__details > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.3rem 0;
}

.proposal-form-summary dt {
    color: var(--pf-muted);
    font-size: 0.69rem;
    font-weight: 400;
}

.proposal-form-summary dd {
    overflow: hidden;
    max-width: 11rem;
    margin: 0;
    color: var(--pf-ink);
    font-size: 0.72rem;
    font-weight: 600;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.proposal-form-summary__values {
    display: grid;
    gap: 0.45rem;
    padding: 0.85rem 0.95rem 0.95rem;
}

.proposal-form-summary__values > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.proposal-form-summary__values span {
    color: var(--pf-muted);
    font-size: 0.7rem;
}

.proposal-form-summary__values strong {
    color: var(--pf-ink);
    font-size: 0.77rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.proposal-form-summary__values .proposal-form-summary__total {
    margin-top: 0.38rem;
    padding: 0.78rem 0.82rem;
    background: var(--pf-ink);
    border: 0;
    border-radius: 0.55rem;
}

.proposal-form-summary__total span {
    color: #c6d1dc;
    font-weight: 600;
}

.proposal-form-summary__total strong {
    color: #fff;
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.proposal-form-submit {
    display: flex;
    width: calc(100% - 1.9rem);
    min-height: 2.7rem;
    align-items: center;
    justify-content: center;
    gap: 0.42rem;
    margin: 0 0.95rem;
    color: #fff;
    background: var(--pf-action);
    border: 1px solid var(--pf-action);
    border-radius: 0.52rem;
    box-shadow: 0 0.22rem 0.7rem rgb(var(--pf-accent-rgb) / 0.14);
    font-size: 0.8rem;
    font-weight: 650;
}

.proposal-form-submit:hover:not(:disabled) {
    background: var(--pf-action-strong);
    border-color: var(--pf-action-strong);
}

.proposal-form-submit.is-final {
    background: var(--pf-success);
    border-color: var(--pf-success);
    box-shadow: 0 0.22rem 0.7rem rgb(78 158 46 / 0.16);
}

.proposal-form-submit.is-final:hover:not(:disabled) {
    background: var(--pf-success-strong);
    border-color: var(--pf-success-strong);
}

.proposal-form-submit:disabled {
    cursor: wait;
    opacity: 0.7;
}

.proposal-form-summary__help {
    display: block;
    padding: 0.65rem 0.95rem 0.9rem;
    color: var(--pf-muted);
    font-size: 0.66rem;
    line-height: 1.45;
    text-align: center;
}

.proposal-form-page button:focus-visible,
.proposal-form-page a:focus-visible,
.proposal-form-page input:focus-visible,
.proposal-form-page select:focus-visible,
.proposal-form-page textarea:focus-visible {
    outline: 2px solid rgba(var(--pf-accent-rgb), 0.28);
    outline-offset: 2px;
}

@media (max-width: 1250px) {
    .proposal-form-layout {
        grid-template-columns: minmax(0, 1fr) 17rem;
    }

    .proposal-item__fields {
        grid-template-columns: 8rem 10rem minmax(11rem, 1fr) 5.75rem 7rem 6rem;
    }

    .proposal-item__total {
        grid-column: 1 / -1;
        min-height: auto;
        grid-auto-flow: column;
        justify-content: end;
        gap: 0.45rem;
    }
}

@media (max-width: 1000px) {
    .proposal-form-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .proposal-form-summary {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .proposal-form-summary__heading,
    .proposal-form-summary__details {
        border-right: 1px solid var(--pf-line);
    }

    .proposal-form-summary__values {
        grid-row: 1 / span 2;
        grid-column: 2;
    }

    .proposal-form-submit,
    .proposal-form-summary__help {
        grid-column: 1 / -1;
    }

    .proposal-field-grid--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .proposal-template-picker {
        grid-template-columns: minmax(0, 1fr);
    }

    .proposal-template-applied,
    .proposal-template-picker__empty {
        grid-column: auto;
    }

    .proposal-template-origin {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .proposal-template-origin em {
        width: 100%;
        margin-left: 1.45rem;
    }

    .proposal-form-shell {
        padding: 0.5rem 0.75rem 2rem;
    }

    .proposal-form-header {
        min-height: 4.5rem;
        padding: 0.7rem 0.8rem;
    }

    .proposal-form-header p {
        display: none;
    }

    .proposal-wizard {
        display: flex;
        overflow-x: auto;
    }

    .proposal-wizard__step {
        min-width: 7.5rem;
    }

    .proposal-field-grid,
    .proposal-field-grid--three,
    .proposal-field-grid--four,
    .proposal-type-choice {
        grid-template-columns: minmax(0, 1fr);
    }

    .proposal-item__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .proposal-field--description,
    .proposal-item__total {
        grid-column: 1 / -1;
    }

    .proposal-content-list__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.2rem;
    }

    .proposal-review {
        grid-template-columns: minmax(0, 1fr);
    }

    .proposal-review > div,
    .proposal-review > div:nth-child(2n),
    .proposal-review > div:nth-last-child(-n + 2) {
        border-right: 0;
        border-bottom: 1px solid var(--pf-line);
    }

    .proposal-review > div:last-child {
        border-bottom: 0;
    }

    .proposal-form-summary {
        display: block;
    }

    .proposal-form-summary__heading,
    .proposal-form-summary__details {
        border-right: 0;
    }

    .proposal-add-item {
        width: 2rem;
        padding: 0;
        justify-content: center;
        overflow: hidden;
        font-size: 0;
    }

    .proposal-add-item i {
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .proposal-form-header h1 {
        font-size: 1.12rem;
    }

    .proposal-form-eyebrow {
        display: none;
    }

    .proposal-item__fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .proposal-field--description,
    .proposal-item__total {
        grid-column: auto;
    }

    .proposal-form-section__body {
        padding: 0.75rem;
    }

    .proposal-form-cancel {
        width: 2rem;
        padding: 0;
        overflow: hidden;
        font-size: 0;
    }

    .proposal-form-cancel::before {
        content: "×";
        font-size: 1rem;
    }

    .proposal-form-send {
        width: 2rem;
        padding: 0;
        justify-content: center;
        overflow: hidden;
        font-size: 0;
    }

    .proposal-form-send i {
        font-size: 0.95rem;
    }

    .proposal-form-preview {
        width: 2rem;
        padding: 0;
        justify-content: center;
        overflow: hidden;
        font-size: 0;
    }

    .proposal-form-preview i {
        font-size: 0.95rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .proposal-form-page * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
