.kbc-container {
    width: 100%;
    margin: 0 auto;
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    box-sizing: border-box;
}
.kbc-container * { box-sizing: border-box; }

/* TABS */
.kbc-tabs { display: flex; margin-bottom: 25px; border-bottom: 2px solid #eee; }
.kbc-tab {
    flex: 1; background: none; border: none; padding: 12px 10px; font-weight: 600;
    cursor: pointer; color: #888; border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.kbc-tab.active { color: #111; border-bottom-color: #111; }

/* FORMS */
.kbc-form { display: none; animation: fadeIn 0.3s; }
.kbc-form.active { display: block; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* FIELDS & FLOATING LABELS */
.kbc-field { position: relative; margin-bottom: 20px; }
.kbc-input { width: 100%; padding: 14px; border: 1px solid #ddd; outline: none; border-radius: 4px; }
.kbc-field label { display: none; }

.kbc-float-active .kbc-field label {
    display: block; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    pointer-events: none; transition: 0.2s ease all; color: #888; margin: 0;
}
.kbc-float-active .kbc-input:focus ~ label,
.kbc-float-active .kbc-input:not(:placeholder-shown) ~ label {
    top: 0; font-size: 12px; padding: 0 4px; background: inherit; color: #111; font-weight: 600;
}
.kbc-float-active .kbc-input::placeholder { color: transparent; }

/* MISC */
.kbc-footer { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; font-size: 14px; }
.kbc-check { display: flex; align-items: center; gap: 8px; cursor: pointer; color: #555; }
.kbc-agb { margin-bottom: 20px; padding: 12px; background: #f9f9f9; border: 1px solid #eee; border-radius: 4px; font-size: 13px; line-height: 1.4; }
.kbc-forgot-link { color: #555; text-decoration: none; }

/* BUTTONS & SPINNER */
.kbc-btn {
    width: 100%; cursor: pointer; font-weight: 600; display: flex; justify-content: center;
    align-items: center; padding: 14px; border: none; border-radius: 4px; transition: 0.3s;
}
.kbc-spin {
    display: none; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.3);
    border-radius: 50%; border-top-color: currentColor; animation: spin 0.8s linear infinite; margin-left: 10px;
}
.kbc-btn.loading { opacity: 0.8; cursor: not-allowed; }
.kbc-btn.loading .kbc-spin { display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }

/* MESSAGES */
.kbc-msg { margin-top: 15px; padding: 12px; border-radius: 4px; font-size: 14px; text-align: center; display: none; }
.kbc-msg.success { display: block; background: #e8f5e9; color: #2e7d32; }
.kbc-msg.error { display: block; background: #ffebee; color: #c62828; }