/* ==========================================================================
   KYC Verification Form Styles
   ========================================================================== */
:root {
    --primary-color: #8ffbde; --primary-hover: #7eecca; --text-on-primary: #1A202C;
    --text-dark: #1A202C; --text-light: #718096; --bg-light: #F9FAFB;
    --border-color: #E5E7EB; --success-color: #10B981; --danger-color: #EF4444;
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --border-radius: 12px; --box-shadow: 0 10px 15px -3px rgba(0,0,0,0.07), 0 4px 6px -2px rgba(0,0,0,0.05);
}
@keyframes move-background { 0% { transform: translate(0, 0); } 25% { transform: translate(-10%, 10%); } 50% { transform: translate(0, -10%); } 75% { transform: translate(10%, 5%); } 100% { transform: translate(0, 0); } }
.animated-background { position: fixed; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle at 20% 20%, hsla(165, 95%, 77%, 0.15), transparent 30%), radial-gradient(circle at 80% 70%, hsla(165, 95%, 77%, 0.2), transparent 40%); z-index: -1; animation: move-background 30s ease-in-out infinite; }
body { font-family: var(--font-family); background-color: var(--bg-light); display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 24px; color: var(--text-dark); overflow-x: hidden; }
.kyc-container { background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(20px); padding: 40px; border-radius: var(--border-radius); border: 1px solid var(--border-color); box-shadow: var(--box-shadow); width: 100%; max-width: 720px; }
.logo-container { text-align: center; margin-bottom: 32px; } .logo-container img { height: 40px; margin-bottom: 16px; }
h1 { font-size: 28px; font-weight: 700; margin: 0; }
h2 { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 600; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid var(--border-color); }
.step-number { background-color: var(--primary-color); color: var(--text-on-primary); width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.form-section { margin-bottom: 32px; } .form-group { margin-bottom: 20px; flex: 1; } .form-row { display: flex; gap: 20px; }
label { display: block; margin-bottom: 8px; font-weight: 500; font-size: 14px; }
input[type="text"], input[type="date"], input[type="tel"], input[type="email"] { border: 1px solid var(--border-color); padding: 12px 15px; border-radius: var(--border-radius); width: 100%; box-sizing: border-box; font-size: 16px; background-color: #fff; transition: all 0.2s ease; }
input:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px hsla(165, 95%, 77%, 0.5); }
.file-upload-group { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.file-name { font-size: 14px; color: var(--text-light); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
input[type="file"][hidden] { display: none; }
.file-upload-group .button { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.button-file.is-uploaded { background-color: var(--success-color); color: white; pointer-events: none; box-shadow: none; transform: none; }
.button-file.is-uploaded .icon-upload { display: none; } .button-file.is-uploaded .icon-check { display: block !important; }
.button { position: relative; overflow: hidden; padding: 12px 24px; border: none; border-radius: var(--border-radius); font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); background-color: var(--primary-color); color: var(--text-on-primary); box-shadow: 0 4px 6px -1px rgba(143, 251, 222, 0.2); }
.button:hover:not(:disabled) { transform: translateY(-3px); box-shadow: 0 7px 10px -3px rgba(143, 251, 222, 0.3); }
.button:active:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(143, 251, 222, 0.2); }
.button:disabled { background-color: #ccc; color: #888; cursor: not-allowed; opacity: 0.7; box-shadow: none; }
.button-primary { width: 100%; padding: 16px; font-size: 18px; }
.button svg { transition: transform 0.3s ease; } .button:hover:not(:disabled) svg { transform: scale(1.1); }
.ripple { position: absolute; border-radius: 50%; transform: scale(0); animation: ripple 0.6s linear; background-color: rgba(255, 255, 255, 0.7); }
@keyframes ripple { to { transform: scale(4); opacity: 0; } }
.camera-container { position: relative; display: flex; justify-content: center; margin-bottom: 16px; background-color: #000; border-radius: var(--border-radius); overflow: hidden; }
#video { width: 100%; height: auto; border-radius: var(--border-radius); transform: scaleX(-1); }
#overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.status-text { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); padding: 8px 15px; border-radius: 20px; font-size: 14px; font-weight: 500; text-align: center; background-color: rgba(26, 32, 44, 0.8); color: white; transition: background-color 0.3s ease; }
.camera-controls { text-align: center; }
.liveness-wrapper { text-align: center; margin-bottom: 16px; }
.liveness-instruction { font-size: 16px; font-weight: 500; margin-bottom: 12px; min-height: 24px; }
.liveness-progress { display: flex; justify-content: center; gap: 10px; }
.progress-step { padding: 6px 12px; border-radius: 20px; background-color: var(--border-color); color: var(--text-light); font-size: 12px; font-weight: 600; transition: all 0.4s ease; }
.progress-step.completed { background-color: var(--success-color); color: white; transform: scale(1.1); }

/* --- НОВЫЕ СТИЛИ ДЛЯ БЛОКА СТАТУСА --- */
#form-status-message {
    padding: 12px 16px;
    margin: 20px 0 10px 0;
    border-radius: var(--border-radius);
    font-weight: 500;
    text-align: center;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transform: translateY(10px);
    transition: all 0.4s ease-out;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
#form-status-message.visible {
    opacity: 1;
    max-height: 100px; /* Достаточно большое значение */
    transform: translateY(0);
}
#form-status-message.success {
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--success-color);
}
#form-status-message.error {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--danger-color);
}
#form-status-message svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}


/* --- НОВЫЕ СТИЛИ ДЛЯ ФУТЕРА --- */
.footer-legal {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
    font-size: 14px;
    color: var(--text-light);
}
.footer-legal a {
    color: var(--text-light);
    text-decoration: none;
    transition: color 0.3s;
}
.footer-legal a:hover {
    color: var(--primary-color);
    text-decoration: underline;
}

@media (max-width: 768px) { body { padding: 16px; } .kyc-container { padding: 24px; } h1 { font-size: 24px; } h2 { font-size: 18px; } .form-row { flex-direction: column; gap: 0; } .file-upload-group .button { min-width: 180px; } }