
/*
public/css/public/manufacturer-signup.css
*/


    .rg-main {
      min-height: calc(100vh - 3.75rem - 10rem);
      display: flex; align-items: flex-start; justify-content: center;
      padding: 2.5rem 1.25rem 4rem;
    }

    /* Wider layout to accommodate wizard */
    .rg-layout {
      display: grid; grid-template-columns: 1fr;
      gap: 2.5rem; max-width: 72rem; width: 100%;
    }
    @media (min-width: 960px) {
      .rg-layout { grid-template-columns: 3fr 2fr; align-items: flex-start; }
    }

    /* Stepper */
    .rg-stepper {
      display: flex; align-items: center;
      width: 100%; margin-bottom: 2rem;
    }
    .rg-step {
      display: flex; flex-direction: column; align-items: center;
      gap: 0.375rem; flex: 1;
    }
    .rg-step-dot {
      width: 2rem; height: 2rem; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 0.75rem; font-weight: 700; transition: all 0.3s;
      border: 2px solid var(--border); background: var(--card); color: var(--muted-fg);
    }
    .rg-step.active .rg-step-dot { border-color: var(--primary); background: var(--primary); color: var(--primary-fg); }
    .rg-step.done .rg-step-dot { border-color: var(--primary); background: var(--primary); color: var(--primary-fg); }
    .rg-step-label { font-size: 0.6875rem; font-weight: 500; color: var(--muted-fg); text-align: center; white-space: nowrap; }
    .rg-step.active .rg-step-label { color: var(--primary); }
    .rg-step.done .rg-step-label { color: var(--fg); }
    .rg-step-line { flex: 1; height: 1px; background: var(--border); margin-bottom: 1.375rem; transition: background 0.3s; }
    .rg-step-line.done { background: var(--primary); }

    /* Fields */
    .rg-form { display: flex; flex-direction: column; gap: 1.125rem; }
    .rg-field { display: flex; flex-direction: column; gap: 0.375rem; }
    .rg-field label {
      font-size: 0.75rem; font-weight: 500; color: var(--muted-fg);
      display: flex; align-items: center; gap: 0.25rem;
    }
    .rg-required { color: hsl(0,60%,55%); font-size: 0.8125rem; }
    .rg-field input, .rg-field select, .rg-field textarea {
      height: 2.625rem; padding: 0 0.875rem;
      border: 1px solid var(--border); border-radius: 0.5rem;
      background: var(--bg); font-size: 0.875rem; color: var(--fg);
      font-family: inherit; outline: none; transition: all 0.2s;
      width: 100%;
    }
    .rg-field textarea { height: auto; padding: 0.625rem 0.875rem; resize: vertical; min-height: 4.5rem; }
    .rg-field select { appearance: none; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m6 9 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 0.75rem center; padding-right: 2.5rem; }
    .rg-field input:focus, .rg-field select:focus, .rg-field textarea:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 2px hsla(174, 55%, 40%, 0.12);
      background: var(--card);
    }
    .rg-field input.error, .rg-field select.error { border-color: hsl(0,60%,55%); box-shadow: 0 0 0 2px hsla(0,60%,55%,0.1); }
    .rg-field-error { font-size: 0.6875rem; color: hsl(0,60%,55%); display: none; }
    .rg-field-error.show { display: block; }
    .rg-field-hint { font-size: 0.6875rem; color: var(--muted-fg); }
    .rg-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    @media (max-width: 540px) { .rg-grid-2 { grid-template-columns: 1fr; } }
    .rg-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.75rem; }
    @media (max-width: 540px) { .rg-grid-3 { grid-template-columns: 1fr; } }

    /* Category cards */
    .rg-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
    @media (max-width: 480px) { .rg-cat-grid { grid-template-columns: 1fr; } }
    .rg-cat-card {
      border: 2px solid var(--border); border-radius: 0.75rem;
      padding: 1rem 0.875rem; cursor: pointer; transition: all 0.2s;
      text-align: center; background: var(--card);
    }
    .rg-cat-card:hover { border-color: hsla(174,55%,40%,0.4); background: var(--secondary); }
    .rg-cat-card.selected { border-color: var(--primary); background: var(--secondary); }
    .rg-cat-icon {
      width: 2.5rem; height: 2.5rem; margin: 0 auto 0.625rem;
      border-radius: 0.625rem; background: var(--muted);
      display: flex; align-items: center; justify-content: center;
      color: var(--muted-fg); transition: all 0.2s;
    }
    .rg-cat-card.selected .rg-cat-icon { background: var(--primary); color: var(--primary-fg); }
    .rg-cat-card h3 { font-size: 0.875rem; font-weight: 600; margin-bottom: 0.25rem; }
    .rg-cat-card p { font-size: 0.6875rem; color: var(--muted-fg); line-height: 1.4; }
    .rg-cat-card input[type="radio"] { display: none; }

    /* Vertical chips */
    .rg-vert-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
    .rg-vert-chip {
      padding: 0.375rem 0.875rem; border: 1px solid var(--border);
      border-radius: 99px; font-size: 0.8125rem; font-weight: 500;
      cursor: pointer; transition: all 0.2s; background: var(--card);
    }
    .rg-vert-chip:hover { border-color: hsla(174,55%,40%,0.4); color: var(--primary); }
    .rg-vert-chip.selected { border-color: var(--primary); background: var(--secondary); color: var(--primary); }
    .rg-vert-chip input { display: none; }

    /* Loading / states */
    .rg-loading { display: none; align-items: center; gap: 0.5rem; padding: 0.875rem; color: var(--muted-fg); font-size: 0.8125rem; }
    .rg-loading.show { display: flex; }
    .rg-spinner { width: 1.125rem; height: 1.125rem; border: 2px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: rgSpin 0.7s linear infinite; }
    @keyframes rgSpin { to { transform: rotate(360deg); } }

    /* Document upload */
    .rg-docs-list { display: flex; flex-direction: column; gap: 1.25rem; }
    .rg-doc-label { font-size: 0.8125rem; font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.375rem; }
    .rg-doc-badge-required { font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.125rem 0.375rem; border-radius: 99px; background: hsl(0,60%,55%); color: #fff; }
    .rg-doc-badge-optional { font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.125rem 0.375rem; border-radius: 99px; background: var(--muted); color: var(--muted-fg); }
    .rg-upload-zone { border: 1.5px dashed var(--border); border-radius: 0.75rem; padding: 1.5rem; text-align: center; cursor: pointer; transition: all 0.2s; background: var(--bg); position: relative; }
    .rg-upload-zone:hover { border-color: var(--primary); background: var(--secondary); }
    .rg-upload-zone.dragover { border-color: var(--primary); background: var(--secondary); }
    .rg-upload-zone.has-file { border-color: hsl(152,55%,45%); background: hsl(152,30%,96%); }
    .rg-upload-zone.error-zone { border-color: hsl(0,60%,55%); }
    .rg-upload-icon { color: var(--muted-fg); margin-bottom: 0.375rem; }
    .rg-upload-zone .rg-upload-text { font-size: 0.8125rem; color: var(--muted-fg); }
    .rg-upload-zone .rg-upload-text strong { color: var(--primary); }
    .rg-upload-zone .rg-upload-meta { font-size: 0.6875rem; color: hsl(210,10%,70%); margin-top: 0.25rem; }
    .rg-upload-zone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
    .rg-file-preview { display: none; align-items: center; gap: 0.5rem; padding: 0.625rem 0.75rem; background: var(--card); border: 1px solid var(--border); border-radius: 0.5rem; margin-top: 0.5rem; }
    .rg-file-preview.show { display: flex; }
    .rg-file-preview-name { font-size: 0.8125rem; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .rg-file-preview-size { font-size: 0.6875rem; color: var(--muted-fg); flex-shrink: 0; }
    .rg-file-remove { color: var(--muted-fg); flex-shrink: 0; transition: color 0.15s; font-size: 0.75rem; padding: 0 0.25rem; }
    .rg-file-remove:hover { color: hsl(0,60%,55%); }

    /* Notice box */
    .rg-notice { display: flex; gap: 0.75rem; padding: 0.875rem 1rem; background: var(--trust-bg); border: 1px solid hsl(174,30%,88%); border-radius: 0.75rem; margin-bottom: 1.5rem; font-size: 0.8125rem; color: var(--fg); line-height: 1.5; }
    .rg-notice-icon { color: var(--primary); flex-shrink: 0; margin-top: 0.125rem; }

    /* Password strength */
    .rg-pw-strength { margin-top: 0.375rem; }
    .rg-pw-bars { display: flex; gap: 0.25rem; }
    .rg-pw-bar { height: 3px; border-radius: 99px; flex: 1; background: var(--border); transition: background 0.3s; }
    .rg-pw-bar.weak { background: hsl(0,60%,55%); }
    .rg-pw-bar.fair { background: hsl(35,90%,55%); }
    .rg-pw-bar.good { background: hsl(152,55%,45%); }
    .rg-pw-label { font-size: 0.6875rem; color: var(--muted-fg); margin-top: 0.25rem; }
    .rg-pw-match { font-size: 0.6875rem; margin-top: 0.25rem; }
    .rg-pw-match.ok { color: hsl(152,55%,45%); }
    .rg-pw-match.fail { color: hsl(0,60%,55%); }

    /* Nav buttons */
    .rg-nav { display: flex; gap: 0.75rem; justify-content: space-between; margin-top: 1.75rem; }
    .rg-btn-prev { height: 2.75rem; padding: 0 1.25rem; border: 1px solid var(--border); border-radius: 0.625rem; font-size: 0.875rem; font-weight: 500; color: var(--fg); display: flex; align-items: center; gap: 0.375rem; transition: all 0.2s; background: var(--card); }
    .rg-btn-prev:hover { border-color: hsla(174,55%,40%,0.35); background: var(--muted); }
    .rg-btn-next { height: 2.75rem; padding: 0 1.5rem; background: var(--primary); color: var(--primary-fg); border-radius: 0.625rem; font-size: 0.875rem; font-weight: 600; display: flex; align-items: center; gap: 0.375rem; transition: opacity 0.15s; margin-left: auto; }
    .rg-btn-next:hover { opacity: 0.9; }
    .rg-btn-submit { height: 3rem; padding: 0 2rem; background: var(--primary); color: var(--primary-fg); border-radius: 0.75rem; font-size: 0.9375rem; font-weight: 700; display: flex; align-items: center; gap: 0.5rem; transition: opacity 0.15s; margin-left: auto; }
    .rg-btn-submit:hover { opacity: 0.9; }
    .rg-btn-submit:disabled { opacity: 0.55; cursor: not-allowed; }
    .rg-btn-submit .rg-spinner { width: 1rem; height: 1rem; border-width: 2px; border-top-color: white; border-color: rgba(255,255,255,0.3); display: none; }
    .rg-btn-submit.loading .rg-spinner { display: block; }
    .rg-btn-submit.loading .rg-submit-text { display: none; }

    /* Toast */
    .rg-toast-wrap { position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 100; display: flex; flex-direction: column; gap: 0.5rem; pointer-events: none; }
    .rg-toast { display: flex; align-items: center; gap: 0.625rem; padding: 0.75rem 1rem; border-radius: 0.75rem; font-size: 0.875rem; font-weight: 500; box-shadow: 0 8px 32px rgba(0,0,0,0.12); pointer-events: auto; min-width: 240px; max-width: 360px; animation: toastIn 0.3s cubic-bezier(0.34,1.56,0.64,1) both; }
    @keyframes toastIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
    .rg-toast.success { background: hsl(152,55%,45%); color: #fff; }
    .rg-toast.error { background: hsl(0,60%,55%); color: #fff; }

    .rg-step-panel { animation: stepIn 0.25s ease both; }
    @keyframes stepIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

    .rg-no-cat-msg { display: none; padding: 1.25rem; text-align: center; color: var(--muted-fg); font-size: 0.8125rem; background: var(--muted); border-radius: 0.75rem; border: 1px solid var(--border); }
    .rg-no-cat-msg.show { display: block; }
    .rg-doc-fallback { display: none; padding: 1.25rem; text-align: center; color: hsl(0,60%,55%); font-size: 0.8125rem; background: hsl(0,60%,97%); border-radius: 0.75rem; border: 1px solid hsl(0,60%,88%); }
    .rg-doc-fallback.show { display: block; }

    /* Right panel - benefits */
    .rg-benefits {
      display: none;
      flex-direction: column; gap: 0;
      padding: 1rem 0;
    }
    @media (min-width: 960px) {
      .rg-benefits { display: flex; padding-left: 1.5rem; position: sticky; top: 5rem; }
    }

    .rg-benefits-title {
      font-size: 1rem; font-weight: 700;
      margin-bottom: 0.375rem;
    }
    .rg-benefits-sub {
      font-size: 0.8125rem; color: var(--muted-fg); line-height: 1.5;
      margin-bottom: 2rem;
    }

    .rg-benefit {
      display: flex; gap: 0.875rem; align-items: flex-start;
      padding: 1rem 0; border-bottom: 1px solid var(--border);
    }
    .rg-benefit:last-of-type { border-bottom: none; }
    .rg-benefit-icon {
      width: 2.5rem; height: 2.5rem; border-radius: 0.75rem;
      background: var(--secondary); color: var(--primary);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .rg-benefit h3 { font-size: 0.875rem; font-weight: 600; margin-bottom: 0.25rem; }
    .rg-benefit p { font-size: 0.8125rem; color: var(--muted-fg); line-height: 1.5; }

    /* Stats strip inside benefits */
    .rg-stats {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 0.75rem; margin-top: 1.75rem;
      padding: 1.25rem; background: var(--secondary);
      border-radius: 0.875rem; border: 1px solid var(--border);
    }
    .rg-stat-num { font-size: 1.25rem; font-weight: 700; color: var(--primary); }
    .rg-stat-label { font-size: 0.6875rem; color: var(--muted-fg); line-height: 1.4; }

    /* Section sub-header inside card */
    .rg-section-title { font-size: 1rem; font-weight: 700; margin-bottom: 0.25rem; }
    .rg-section-sub { font-size: 0.8125rem; color: var(--muted-fg); margin-bottom: 1.5rem; line-height: 1.5; }

    /* Sub-group label */
    .rg-group-label {
      font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.07em;
      text-transform: uppercase; color: var(--muted-fg);
      margin-bottom: 0.75rem; margin-top: 0.25rem;
    }