/* ============================================
   FORM PAGE - Shared layout & theme for form pages
   (new-company, create-position, etc.)
   ============================================ */

@layer components {
  .form-page {
    /* Layout */
    .page-layout {
      position: relative;
      z-index: 1;
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-2xl);
      align-items: flex-start;
    }

    .form-area {
      flex: 1;
      min-inline-size: 320px;
    }

    .sidebar {
      flex-shrink: 0;
      inline-size: 100%;
      max-inline-size: 320px;
      display: flex;
      flex-direction: column;
      gap: var(--space-xl);
    }

    /* Error banner */
    .error-banner {
      display: flex;
      align-items: flex-start;
      gap: var(--space-md);
      padding: var(--space-lg);
      border-radius: 12px;
      margin-block-end: var(--space-xl);
      font-size: var(--fs-small);
      line-height: 1.5;

      svg {
        flex-shrink: 0;
        margin-block-start: 2px;
      }

      strong {
        display: block;
        margin-block-end: var(--space-3xs);
      }

      a {
        font-weight: var(--fw-semibold);
        text-decoration: underline;
        text-underline-offset: 2px;
      }
    }

    /* Card */
    .card {
      padding: var(--space-2xl);
      border-radius: 16px;
      transition: border-color 0.3s ease-out;
    }

    .card-header {
      margin-block-end: var(--space-xl);

      h2 {
        font-size: var(--fs-xl);
        font-weight: var(--fw-semibold);
        letter-spacing: -0.01em;
        margin-block-end: var(--space-3xs);
      }

      .card-hint {
        font-size: var(--fs-xsmall);
      }
    }

    /* Form groups */
    .form-group {
      margin-block-end: var(--space-xl);

      label {
        display: flex;
        align-items: center;
        gap: var(--space-xs);
        font-size: var(--fs-small);
        font-weight: var(--fw-medium);
        margin-block-end: var(--space-sm);

        svg {
          flex-shrink: 0;
          opacity: 0.6;
        }
      }

      input,
      select,
      textarea {
        inline-size: 100%;
        padding: var(--space-compact) var(--space-md);
        border-radius: 10px;
        font-size: var(--fs-body);
        transition: all 0.2s ease-out;
      }

      textarea {
        min-block-size: 100px;
        resize: vertical;
      }

      .field-hint {
        display: block;
        font-size: var(--fs-xsmall);
        color: var(--text-secondary);
        margin-block-start: var(--space-3xs);
      }
    }

    .form-row {
      display: flex;
      gap: var(--space-lg);

      .form-group {
        flex: 1;
        min-inline-size: 140px;
      }
    }

    /* Details / accordion */
    .additional-details {
      margin-block-end: var(--space-xl);
      border-radius: 12px;
      overflow: hidden;
      transition: all 0.3s ease-out;

      summary {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: var(--space-md) var(--space-lg);
        cursor: pointer;
        list-style: none;
        font-weight: var(--fw-medium);
        font-size: var(--fs-small);
        transition: all 0.2s ease-out;

        &::-webkit-details-marker {
          display: none;
        }
      }

      .summary-left {
        display: flex;
        align-items: center;
        gap: var(--space-xs);

        svg {
          transition: transform 0.3s ease-out;
        }
      }

      &[open] .summary-left svg {
        transform: rotate(45deg);
      }

      .field-count {
        font-size: var(--fs-xsmall);
      }

      .details-content {
        padding: var(--space-md) var(--space-lg) var(--space-lg);
      }
    }

    /* Submit button */
    .submit-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-xs);
      padding: var(--space-compact) var(--space-2xl);
      border-radius: 100px;
      font-size: var(--fs-body);
      font-weight: var(--fw-semibold);
      cursor: pointer;
      transition: all 0.25s ease-out;
      border: none;
      inline-size: 100%;

      svg {
        transition: transform 0.25s ease-out;
      }

      &:hover svg {
        transform: rotate(90deg);
      }
    }

    /* Sidebar cards */
    .sidebar .card {
      h3 {
        display: flex;
        align-items: center;
        gap: var(--space-sm);
        font-size: var(--fs-body);
        font-weight: var(--fw-semibold);
        margin-block-end: var(--space-lg);

        svg {
          flex-shrink: 0;
          opacity: 0.7;
        }
      }
    }

    /* Steps */
    .steps {
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
    }

    .step {
      display: flex;
      gap: var(--space-md);
      align-items: center;
      padding: var(--space-compact) var(--space-md);
      border-radius: 10px;
      transition: all 0.2s ease-out;

      strong {
        display: block;
        font-size: var(--fs-small);
        margin-block-end: var(--space-4xs);
      }

      p {
        font-size: var(--fs-xsmall);
      }
    }

    .step-number {
      display: flex;
      align-items: center;
      justify-content: center;
      inline-size: 32px;
      block-size: 32px;
      border-radius: 50%;
      font-size: var(--fs-small);
      font-weight: var(--fw-semibold);
      flex-shrink: 0;
      transition: all 0.2s ease-out;
    }

    /* Tips */
    .tips-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-md);

      li {
        font-size: var(--fs-small);
        line-height: 1.5;
        padding-inline-start: var(--space-md);
        position: relative;

        &::before {
          content: '';
          position: absolute;
          inset-inline-start: 0;
          inset-block-start: 0.6em;
          inline-size: 6px;
          block-size: 6px;
          border-radius: 50%;
        }
      }
    }
  }
}

/* --- THEME --- */
@layer theme {
  .form-page {
    .error-banner {
      background: light-dark(
        oklch(from var(--color-error) l c h / 0.08),
        oklch(from var(--color-error) l c h / 0.12)
      );
      border: 1px solid
        light-dark(
          oklch(from var(--color-error) l c h / 0.2),
          oklch(from var(--color-error) l c h / 0.25)
        );
      color: light-dark(
        oklch(from var(--color-error) calc(l - 0.1) c h),
        oklch(from var(--color-error) calc(l + 0.15) c h)
      );

      a {
        color: inherit;
        &:hover {
          opacity: 0.8;
        }
      }
    }

    .form-group {
      input,
      textarea {
        &::placeholder {
          color: oklch(50% 0.01 250);
        }

        &:focus {
          box-shadow:
            0 0 0 3px var(--input-focus-shadow),
            0 2px 8px oklch(from var(--accent-primary) l c h / 0.1);
        }
      }
    }

    .additional-details {
      background: light-dark(oklch(0% 0 0 / 0.02), oklch(100% 0 0 / 0.03));
      border: 1px solid oklch(from var(--glass-tint) l c h / 0.06);

      &:hover {
        border-color: oklch(from var(--accent-primary) l c h / 0.2);
      }

      summary {
        color: var(--text-primary);

        &:hover {
          background: light-dark(oklch(0% 0 0 / 0.02), oklch(100% 0 0 / 0.03));
        }
      }

      .field-count {
        color: var(--text-secondary);
      }

      .details-content {
        border-block-start: 1px solid oklch(from var(--glass-tint) l c h / 0.06);
      }

      .summary-left svg {
        color: light-dark(
          oklch(from var(--accent-primary) l calc(c - 0.03) h),
          oklch(from var(--accent-primary) calc(l + 0.1) calc(c - 0.03) h)
        );
      }
    }

    /* Steps */
    .step {
      &:hover {
        background: light-dark(oklch(0% 0 0 / 0.02), oklch(100% 0 0 / 0.04));
      }

      strong {
        color: var(--text-primary);
      }
      p {
        color: var(--text-secondary);
      }
    }

    .step-number {
      background: light-dark(oklch(0% 0 0 / 0.04), oklch(100% 0 0 / 0.06));
      border: 1px solid light-dark(oklch(0% 0 0 / 0.08), oklch(100% 0 0 / 0.1));
      color: var(--text-secondary);
    }

    .step--active {
      background: light-dark(
        oklch(from var(--accent-primary) l c h / 0.06),
        oklch(from var(--accent-primary) l c h / 0.08)
      );

      .step-number {
        background: light-dark(
          oklch(from var(--accent-primary) l c h / 0.12),
          oklch(from var(--accent-primary) l c h / 0.2)
        );
        border-color: light-dark(
          oklch(from var(--accent-primary) l c h / 0.2),
          oklch(from var(--accent-primary) l c h / 0.3)
        );
        color: light-dark(
          oklch(from var(--accent-primary) calc(l - 0.05) calc(c - 0.03) h),
          oklch(from var(--accent-primary) calc(l + 0.15) calc(c - 0.05) h)
        );
      }

      strong {
        color: light-dark(
          oklch(from var(--accent-primary) calc(l - 0.05) calc(c - 0.03) h),
          oklch(from var(--accent-primary) calc(l + 0.15) calc(c - 0.05) h)
        );
      }
    }

    /* Tips */
    .tips-list {
      li {
        color: var(--text-secondary);

        strong {
          color: var(--text-primary);
        }

        &::before {
          background: var(--accent-primary);
        }
      }
    }
  }
}
