:root {
    --sp-accent: #5cb85c;
    --sp-accent-dark: #4cae4c;
    --sp-bg: #ffffff;
    --sp-page-bg: #f6f7f9;
    --sp-text: #1f2937;
    --sp-muted: #6b7280;
    --sp-border: #e2e6ec;
    --sp-input-bg: #fafbfc;
    --sp-error: #d63638;
    --sp-radius: 10px;
    --sp-radius-lg: 16px;
}

.sp-apps-form-wrap {
    max-width: 760px;
    margin: 0 auto;
    font-family: inherit;
    color: inherit;
    line-height: 1.5;
    box-sizing: border-box;
    position: relative;
    clear: both;
}

.sp-apps-form-wrap *,
.sp-apps-form-wrap *::before,
.sp-apps-form-wrap *::after {
    box-sizing: border-box;
}

.sp-apps-intro {
    background: #fff;
    border: 1px solid var(--sp-border);
    border-inline-start: 4px solid var(--sp-accent);
    padding: 1em 1.25em;
    border-radius: var(--sp-radius);
    margin-bottom: 1.25em;
    color: var(--sp-text);
}
.sp-apps-intro p:last-child { margin-bottom: 0; }

.sp-apps-form {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.sp-apps-row {
    margin-bottom: 1.15em;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sp-apps-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.15em 1.25em;
    margin-bottom: 1.15em;
}
.sp-apps-grid .sp-apps-row {
    margin-bottom: 0;
}

.sp-apps-row label {
    font-weight: 600;
    font-size: 0.9em;
    color: #2c3340;
    margin-bottom: 0.45em;
    letter-spacing: 0.005em;
}

.sp-req {
    color: var(--sp-error);
    margin-inline-start: 2px;
    font-weight: 700;
}

.sp-apps-form input[type="text"],
.sp-apps-form input[type="email"],
.sp-apps-form input[type="tel"],
.sp-apps-form input[type="url"],
.sp-apps-form input[type="number"],
.sp-apps-form select,
.sp-apps-form textarea {
    width: 100%;
    padding: 0.7em 0.9em;
    border: 1px solid var(--sp-border);
    background: var(--sp-input-bg);
    border-radius: var(--sp-radius);
    font: inherit;
    color: inherit;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
    -webkit-appearance: none;
    appearance: none;
}

.sp-apps-form select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b7280' d='M6 8L0 0h12z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 0.9em center;
    background-size: 10px;
    padding-inline-end: 2.4em;
}
[dir="rtl"] .sp-apps-form select {
    background-position: left 0.9em center;
    padding-inline-end: 0.9em;
    padding-inline-start: 2.4em;
}

.sp-apps-form textarea {
    min-height: 120px;
    resize: vertical;
}

.sp-apps-form input:focus,
.sp-apps-form select:focus,
.sp-apps-form textarea:focus {
    outline: none;
    border-color: var(--sp-accent);
    background: #fff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sp-accent) 22%, transparent);
}

.sp-apps-form input.has-error,
.sp-apps-form select.has-error,
.sp-apps-form textarea.has-error {
    border-color: var(--sp-error);
    background: #fff5f5;
}

.sp-apps-error {
    color: var(--sp-error);
    font-size: 0.8em;
    margin-top: 0.35em;
    min-height: 1em;
    line-height: 1.3;
}

.sp-apps-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
    padding: 0.95em 1.1em;
    border: 2px dashed var(--sp-border);
    border-radius: var(--sp-radius);
    background: var(--sp-input-bg);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.sp-apps-file:hover {
    border-color: var(--sp-accent);
    background: #fff;
}
.sp-apps-file input[type="file"] {
    display: none;
}
.sp-apps-file-cta {
    font-weight: 600;
    color: var(--sp-accent-dark);
}
.sp-apps-file-meta {
    font-size: 0.85em;
    color: var(--sp-muted);
}
.sp-apps-file-list {
    margin-top: 0.5em;
    font-size: 0.85em;
    color: var(--sp-muted);
}
.sp-apps-file-list.has-files {
    color: var(--sp-text);
}

.sp-apps-actions {
    margin-top: 1.5em;
}

.sp-apps-submit {
    background: var(--sp-accent);
    color: #fff;
    border: 0;
    padding: 0.9em 2em;
    border-radius: var(--sp-radius);
    cursor: pointer;
    font-weight: 600;
    font-size: 1em;
    width: 100%;
    transition: background .15s ease, transform .05s ease, box-shadow .15s ease;
    box-shadow: 0 4px 14px -4px color-mix(in srgb, var(--sp-accent) 60%, transparent);
}
.sp-apps-submit:hover {
    background: var(--sp-accent-dark);
}
.sp-apps-submit:active {
    transform: translateY(1px);
}
.sp-apps-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    box-shadow: none;
}

.sp-apps-message {
    margin-top: 1.25em;
    padding: 0.9em 1.1em;
    border-radius: var(--sp-radius);
    font-size: 0.95em;
    display: none;
    line-height: 1.5;
}
.sp-apps-message.is-success {
    display: block;
    background: #ebf7ee;
    color: #1d5f2c;
    border-inline-start: 4px solid var(--sp-accent);
}
.sp-apps-message.is-error {
    display: block;
    background: #fdecec;
    color: #7a1a1a;
    border-inline-start: 4px solid var(--sp-error);
}

.sp-apps-hp {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}

.sp-apps-documents {
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 16px 18px 6px;
    margin: 8px 0 4px;
}
.sp-apps-documents > legend {
    padding: 0 8px;
    font-weight: 600;
    font-size: 0.95em;
}

@media (max-width: 640px) {
    .sp-apps-form-wrap {
        margin: 1em auto;
    }
    .sp-apps-form {
        padding: 1.5em 1.25em;
    }
    .sp-apps-grid {
        grid-template-columns: 1fr;
        gap: 1.15em;
    }
    .sp-apps-file {
        flex-direction: column;
        align-items: flex-start;
        text-align: start;
    }
}
