/* ── MODAL PLANO ── */
      .plan-modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(10, 22, 40, 0.72);
        backdrop-filter: blur(4px);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 200;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
        padding: 1rem;
      }
      .plan-modal-overlay.open {
        opacity: 1;
        pointer-events: auto;
      }
      .plan-modal {
        width: 100%;
        max-width: 480px;
        border-radius: 1.25rem;
        overflow: hidden;
        box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
        transform: translateY(20px) scale(0.97);
        transition: transform 0.28s cubic-bezier(0.34, 1.4, 0.64, 1);
        background: #fff;
      }
      .plan-modal-overlay.open .plan-modal {
        transform: translateY(0) scale(1);
      }
      .pm-header {
        background: var(--brand-navy);
        color: #fff;
        padding: 1.5rem 1.5rem 1.25rem;
        position: relative;
      }
      .pm-badge {
        display: inline-block;
        background: var(--brand-yellow);
        color: var(--brand-navy);
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        padding: 0.28rem 0.75rem;
        border-radius: 999px;
        margin-bottom: 0.85rem;
      }
      .pm-close {
        position: absolute;
        top: 1.1rem;
        right: 1.1rem;
        width: 2rem;
        height: 2rem;
        border-radius: 0.5rem;
        border: none;
        background: rgba(255, 255, 255, 0.12);
        color: #fff;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s;
      }
      .pm-close:hover {
        background: rgba(255, 255, 255, 0.22);
      }
      .pm-title {
        font-size: 1.5rem;
        font-weight: 800;
        letter-spacing: -0.01em;
        margin-bottom: 0.2rem;
      }
      .pm-subtitle {
        font-size: 0.8rem;
        opacity: 0.7;
        margin-bottom: 1.25rem;
      }
      /* Stepper */
      .pm-stepper {
        display: flex;
        align-items: center;
        gap: 0;
      }
      .pm-step {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.3rem;
      }
      .pm-step-circle {
        width: 2rem;
        height: 2rem;
        border-radius: 50%;
        border: 2px solid rgba(255, 255, 255, 0.3);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.8rem;
        font-weight: 700;
        color: rgba(255, 255, 255, 0.4);
        transition: all 0.3s;
      }
      .pm-step span {
        font-size: 0.6rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        color: rgba(255, 255, 255, 0.4);
        transition: color 0.3s;
      }
      .pm-step.active .pm-step-circle {
        background: var(--brand-yellow);
        border-color: var(--brand-yellow);
        color: var(--brand-navy);
      }
      .pm-step.active span {
        color: #fff;
      }
      .pm-step.done .pm-step-circle {
        background: var(--brand-success);
        border-color: var(--brand-success);
        color: #fff;
      }
      .pm-step.done span {
        color: rgba(255, 255, 255, 0.7);
      }
      .pm-step-line {
        flex: 1;
        height: 2px;
        background: rgba(255, 255, 255, 0.2);
        margin: 0 0.4rem;
        margin-bottom: 1.2rem;
        transition: background 0.3s;
      }
      .pm-step-line.done {
        background: var(--brand-success);
      }
      /* Body */
      .pm-body {
        padding: 1.5rem;
      }
      .pm-section-label {
        font-size: 0.65rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        color: var(--brand-yellow);
        margin-bottom: 1rem;
        border-bottom: 1px solid #e8eff7;
        padding-bottom: 0.5rem;
      }
      .pm-field {
        margin-bottom: 1rem;
      }
      .pm-label {
        display: block;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.07em;
        color: var(--brand-navy);
        margin-bottom: 0.4rem;
      }
      .pm-input {
        width: 100%;
        padding: 0.75rem 1rem;
        border: 2px solid #cbd5e1;
        border-radius: 0.6rem;
        font-family: inherit;
        font-size: 0.9rem;
        color: var(--brand-navy);
        outline: none;
        transition: border-color 0.2s;
        background: #fff;
      }
      .pm-input:focus {
        border-color: var(--brand-yellow);
      }
      .pm-select {
        cursor: pointer;
      }
      .pm-error {
        display: none;
        font-size: 0.72rem;
        color: #ef4444;
        margin-top: 0.3rem;
      }
      .pm-error.show {
        display: block;
      }
      .pm-btn {
        width: 100%;
        padding: 0.9rem;
        background: var(--brand-navy);
        color: #fff;
        border: none;
        border-radius: 0.6rem;
        font-family: inherit;
        font-size: 0.85rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        cursor: pointer;
        margin-top: 0.5rem;
        transition:
          background 0.2s,
          transform 0.15s;
      }
      .pm-btn:hover {
        background: #1e3050;
        transform: translateY(-1px);
      }
      .pm-safe {
        text-align: center;
        font-size: 0.72rem;
        color: #94a3b8;
        margin-top: 0.75rem;
      }
