* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #f3f6f9;
    color: #17202a;
}
.sf-wrap {
    width: min(920px, calc(100% - 30px));
    margin: 40px auto;
}
.sf-card {
    background: #fff;
    padding: 32px;
    border-radius: 14px;
    box-shadow: 0 10px 35px rgba(0,0,0,.08);
}
h1 { margin: 0 0 6px; font-size: 30px; }
.sf-intro { margin: 0 0 25px; color: #667085; }
.sf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.sf-full { grid-column: 1 / -1; }
.sf-field label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 7px;
}
.sf-field input, .sf-field textarea, .sf-captcha-row input {
    width: 100%;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    padding: 12px 13px;
    font-size: 15px;
    outline: none;
    background: #fff;
}
.sf-field input:focus, .sf-field textarea:focus, .sf-captcha-row input:focus {
    border-color: #475467;
    box-shadow: 0 0 0 3px rgba(71,84,103,.10);
}
.sf-field small { display: block; color: #667085; margin-top: 5px; font-size: 12px; }
.sf-captcha-row {
    display: grid;
    grid-template-columns: 150px 45px minmax(150px, 220px);
    align-items: center;
    gap: 10px;
    margin: 20px 0;
}
.sf-captcha { width: 150px; height: 45px; border: 1px solid #d0d5dd; border-radius: 6px; }
.sf-refresh {
    height: 45px;
    border: 1px solid #d0d5dd;
    border-radius: 6px;
    background: #f8fafc;
    cursor: pointer;
    font-size: 23px;
}
.sf-submit {
    width: 100%;
    border: 0;
    border-radius: 8px;
    padding: 13px 18px;
    background: #17202a;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}
.sf-submit:disabled { opacity: .6; cursor: wait; }
hr { border: 0; border-top: 1px solid #eaecf0; margin: 35px 0; }
.sf-message { display: none; padding: 12px 14px; border-radius: 8px; margin-bottom: 20px; }
.sf-message.success, .sf-message.error { display: block; }
.sf-message.success { background: #ecfdf3; color: #067647; }
.sf-message.error { background: #fef3f2; color: #b42318; }
.sf-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 650px) {
    .sf-wrap { width: min(100% - 20px, 920px); margin: 20px auto; }
    .sf-card { padding: 22px 16px; }
    .sf-grid { grid-template-columns: 1fr; }
    .sf-full { grid-column: auto; }
    .sf-captcha-row { grid-template-columns: 120px 45px 1fr; }
    .sf-captcha { width: 120px; }
}
